public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
From: David Zeuthen <davidz@fedoraproject.org>
To: git-commits@fedoraproject.org
Subject: [rpms/glib2] cve-2026-58016-f44: - Only pass URI's for gio apps (#442835)
Date: Tue, 11 Aug 2026 10:33:44 GMT	[thread overview]
Message-ID: <178644442486.1.11065541700129363505.rpms-glib2-58ed49b93fac@fedoraproject.org> (raw)

A new commit has been pushed.

Repo   : rpms/glib2
Branch : cve-2026-58016-f44
Commit : 58ed49b93fac27af091cfedfb98aa8e55702e365
Author : David Zeuthen <davidz@fedoraproject.org>
Date   : 2008-04-17T23:49:13+00:00
Stats  : +118/-1 in 2 file(s)
URL    : https://src.fedoraproject.org/rpms/glib2/c/58ed49b93fac27af091cfedfb98aa8e55702e365?branch=cve-2026-58016-f44

Log:
- Only pass URI's for gio apps (#442835)

---
diff --git a/gio-2.16-only-pass-uri-to-gio-apps.patch b/gio-2.16-only-pass-uri-to-gio-apps.patch
new file mode 100644
index 0000000..f646710
--- /dev/null
+++ b/gio-2.16-only-pass-uri-to-gio-apps.patch
@@ -0,0 +1,110 @@
+Index: gio/gdesktopappinfo.c
+===================================================================
+--- gio/gdesktopappinfo.c	(revision 6851)
++++ gio/gdesktopappinfo.c	(working copy)
+@@ -1,3 +1,5 @@
++/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
++
+ /* GIO - GLib Input, Output and Streaming Library
+  * 
+  * Copyright (C) 2006-2007 Red Hat, Inc.
+@@ -87,6 +89,7 @@
+   char *exec;
+   char *binary;
+   char *path;
++  char *vfs_system;
+ 
+   guint nodisplay       : 1;
+   guint hidden          : 1;
+@@ -149,6 +152,7 @@
+   g_free (info->try_exec);
+   g_free (info->exec);
+   g_free (info->binary);
++  g_free (info->vfs_system);
+   g_free (info->path);
+   
+   G_OBJECT_CLASS (g_desktop_app_info_parent_class)->finalize (object);
+@@ -264,6 +268,7 @@
+   info->terminal = g_key_file_get_boolean (key_file, G_KEY_FILE_DESKTOP_GROUP, G_KEY_FILE_DESKTOP_KEY_TERMINAL, NULL) != FALSE;
+   info->startup_notify = g_key_file_get_boolean (key_file, G_KEY_FILE_DESKTOP_GROUP, G_KEY_FILE_DESKTOP_KEY_STARTUP_NOTIFY, NULL) != FALSE;
+   info->hidden = g_key_file_get_boolean (key_file, G_KEY_FILE_DESKTOP_GROUP, G_KEY_FILE_DESKTOP_KEY_HIDDEN, NULL) != FALSE;
++  info->vfs_system = g_key_file_get_string (key_file, G_KEY_FILE_DESKTOP_GROUP, "X-Gnome-Vfs-System", NULL);
+ 
+   g_key_file_free (key_file);
+   
+@@ -498,9 +503,35 @@
+ {
+   GList *uris = *uri_list;
+   char *expanded;
+-  
++  gboolean force_file_uri;
++  char force_file_uri_macro;
++
+   g_return_if_fail (exec != NULL);
+-  
++
++  /* On %u and %U, only pass gio URI's if the desktop file has the
++   * X-Gnome-Vfs-System key set to 'gio' or if FUSE is not available.
++   * Otherwise we pass in a POSIX file path pointing to the URI via
++   * the FUSE mount in ~/.gvfs.
++   */
++  force_file_uri = FALSE;
++  if (macro == 'u' || macro == 'U')
++    {
++      if (info->vfs_system == NULL || strcmp (info->vfs_system, "gio") != 0)
++        {
++          switch (macro)
++            {
++            case 'u':
++              force_file_uri_macro = 'f';
++              force_file_uri = TRUE;
++              break;
++            case 'U':
++              force_file_uri_macro = 'F';
++              force_file_uri = TRUE;
++              break;
++            }
++        }
++    }
++
+   switch (macro)
+     {
+     case 'u':
+@@ -509,7 +540,17 @@
+     case 'n':
+       if (uris)
+ 	{
+-	  expanded = expand_macro_single (macro, uris->data);
++          if (!force_file_uri || g_str_has_prefix (uris->data, "http"))
++            {
++              expanded = expand_macro_single (macro, uris->data);
++            }
++          else
++            {
++              expanded = expand_macro_single (force_file_uri_macro, uris->data);
++              if (expanded == NULL)
++                expanded = expand_macro_single (macro, uris->data);
++            }
++
+ 	  if (expanded)
+ 	    {
+ 	      g_string_append (exec, expanded);
+@@ -526,7 +567,17 @@
+     case 'N':
+       while (uris)
+ 	{
+-	  expanded = expand_macro_single (macro, uris->data);
++          if (!force_file_uri || g_str_has_prefix (uris->data, "http"))
++            {
++              expanded = expand_macro_single (macro, uris->data);
++            }
++          else
++            {
++              expanded = expand_macro_single (force_file_uri_macro, uris->data);
++              if (expanded == NULL)
++                expanded = expand_macro_single (macro, uris->data);
++            }
++
+ 	  if (expanded)
+ 	    {
+ 	      g_string_append (exec, expanded);

diff --git a/glib2.spec b/glib2.spec
index f54b693..91de2d3 100644
--- a/glib2.spec
+++ b/glib2.spec
@@ -3,7 +3,7 @@
 Summary: A library of handy utility functions
 Name: glib2
 Version: 2.16.3
-Release: 3%{?dist}
+Release: 4%{?dist}
 License: LGPLv2+
 Group: System Environment/Libraries
 URL: http://www.gtk.org
@@ -26,6 +26,9 @@ Patch0: appinfo.patch
 # committed on March 12, 2008
 Patch1: revert-316221.patch
 
+# https://bugzilla.redhat.com/show_bug.cgi?id=442835
+Patch2: gio-2.16-only-pass-uri-to-gio-apps.patch
+
 %description 
 GLib is the low-level core library that forms the basis
 for projects such as GTK+ and GNOME. It provides data structure
@@ -59,6 +62,7 @@ of version 2 of the GLib library.
 %setup -q -n glib-%{version}
 %patch0 -p1 -b .appinfo
 %patch1 -R -p1 -b .revert-316221
+%patch2 -p0 -b .only-pass-uri-to-gio-apps
 
 %build
 %configure --disable-gtk-doc --enable-static 
@@ -131,6 +135,9 @@ rm -rf $RPM_BUILD_ROOT
 %{_libdir}/lib*.a
 
 %changelog
+* Thu Apr 17 2008 David Zeuthen <davidz@redhat.com> - 2.16.3-4
+- Only pass URI's for gio apps (#442835)
+
 * Sun Apr 13 2008 Dan Williams <dcbw@redhat.com> - 2.16.3-3
 - Revert upstream changes to g_static_mutex_get_mutex_impl_shortcut that broke
     users of GMutex and GStaticMutex (bgo#316221)

                 reply	other threads:[~2026-08-11 10:33 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=178644442486.1.11065541700129363505.rpms-glib2-58ed49b93fac@fedoraproject.org \
    --to=davidz@fedoraproject.org \
    --cc=git-commits@fedoraproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox