Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package xreader for openSUSE:Factory checked in at 2026-10-07 19:32:37 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/xreader (Old) and /work/SRC/openSUSE:Factory/.xreader.new.3698736 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xreader" Wed Oct 7 19:32:37 2026 rev:44 rq:1382877 version:4.6.9 Changes: -------- --- /work/SRC/openSUSE:Factory/xreader/xreader.changes 2026-10-05 16:18:44.283553466 +0200 +++ /work/SRC/openSUSE:Factory/.xreader.new.3698736/xreader.changes 2026-10-07 19:33:11.651116304 +0200 @@ -1,0 +2,5 @@ +Tue Oct 6 21:11:36 UTC 2026 - Dirk Müller <[email protected]> + +- add CVE-2026-104983.patch (bsc#1284161, CVE-2026-104983) + +------------------------------------------------------------------- New: ---- CVE-2026-104983.patch ----------(New B)---------- New: - add CVE-2026-104983.patch (bsc#1284161, CVE-2026-104983) ----------(New E)---------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ xreader.spec ++++++ --- /var/tmp/diff_new_pack.4w2BOe/_old 2026-10-07 19:33:12.962171057 +0200 +++ /var/tmp/diff_new_pack.4w2BOe/_new 2026-10-07 19:33:12.970171391 +0200 @@ -26,6 +26,7 @@ License: GPL-2.0-only AND LGPL-2.0-only URL: https://github.com/linuxmint/xreader Source: %{url}/archive/%{version}.tar.gz#/%{name}-%{version}.tar.gz +Patch0: CVE-2026-104983.patch BuildRequires: fdupes BuildRequires: gcc-c++ BuildRequires: intltool @@ -166,7 +167,7 @@ A plugin for Xreader to read Pixbuf documents. %prep -%autosetup +%autosetup -p1 %build %meson \ ++++++ CVE-2026-104983.patch ++++++ diff -urN xreader-4.6.9.orig/shell/ev-sidebar-attachments.c xreader-4.6.9/shell/ev-sidebar-attachments.c --- a/shell/ev-sidebar-attachments.c +++ b/shell/ev-sidebar-attachments.c @@ -410,6 +410,7 @@ GtkTreeIter iter; GFile *file; gchar *template; + gchar *basename; GError *error = NULL; path = (GtkTreePath *) l->data; @@ -421,9 +422,11 @@ -1); /* FIXMEchpe: convert to filename encoding first! */ - template = g_strdup_printf ("%s.XXXXXX", ev_attachment_get_name (attachment)); + basename = g_path_get_basename (ev_attachment_get_name (attachment)); + template = g_strdup_printf ("%s.XXXXXX", basename); file = ev_mkstemp_file (template, &error); g_free (template); + g_free (basename); if (file != NULL && ev_attachment_save (attachment, file, &error)) { gchar *uri; diff -urN xreader-4.6.9.orig/shell/ev-window.c xreader-4.6.9/shell/ev-window.c --- a/shell/ev-window.c +++ b/shell/ev-window.c @@ -7183,6 +7183,22 @@ } } +static gchar * +ev_attachment_get_safe_basename (EvAttachment *attachment) +{ + const gchar *name = ev_attachment_get_name (attachment); + gchar *basename = g_path_get_basename (name ? name : ""); + + if (g_strcmp0 (basename, ".") == 0 || + g_strcmp0 (basename, "..") == 0 || + g_strcmp0 (basename, G_DIR_SEPARATOR_S) == 0) { + g_free (basename); + basename = g_strdup ("attachment"); + } + + return basename; +} + static void attachment_save_dialog_response_cb (GtkWidget *fc, gint response_id, @@ -7219,9 +7235,11 @@ if (is_native) { if (is_dir) { - save_to = g_file_get_child (target_file, - /* FIXMEchpe: file name encoding! */ - ev_attachment_get_name (attachment)); + gchar *basename = ev_attachment_get_safe_basename (attachment); + + /* FIXMEchpe: file name encoding! */ + save_to = g_file_get_child (target_file, basename); + g_free (basename); } else { save_to = g_object_ref (target_file); } @@ -7245,8 +7263,10 @@ GFile *dest_file; if (is_dir) { - dest_file = g_file_get_child (target_file, - ev_attachment_get_name (attachment)); + gchar *basename = ev_attachment_get_safe_basename (attachment); + + dest_file = g_file_get_child (target_file, basename); + g_free (basename); } else { dest_file = g_object_ref (target_file); }
