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);
             }

Reply via email to