Blame SOURCES/CVE-2017-18266.patch

a74860
From ce802d71c3466d1dbb24f2fe9b6db82a1f899bcb Mon Sep 17 00:00:00 2001
a74860
From: Gabriel Corona <gabriel.corona@enst-bretagne.fr>
a74860
Date: Mon, 19 Mar 2018 22:09:00 +0100
a74860
Subject: [PATCH] Avoid argument injection vulnerability in open_envvar()
a74860
a74860
---
a74860
 scripts/xdg-open.in | 10 +++++++++-
a74860
 1 file changed, 9 insertions(+), 1 deletion(-)
a74860
a74860
diff --git a/scripts/xdg-open.in b/scripts/xdg-open.in
a74860
index 2972257..021524b 100644
a74860
--- a/scripts/xdg-open.in
a74860
+++ b/scripts/xdg-open.in
a74860
@@ -351,6 +351,11 @@ open_generic_xdg_x_scheme_handler()
a74860
     fi
a74860
 }
a74860
 
a74860
+has_single_argument()
a74860
+{
a74860
+  test $# = 1
a74860
+}
a74860
+
a74860
 open_envvar()
a74860
 {
a74860
     local oldifs="$IFS"
a74860
@@ -365,7 +370,10 @@ open_envvar()
a74860
         fi
a74860
 
a74860
         if echo "$browser" | grep -q %s; then
a74860
-            $(printf "$browser" "$1")
a74860
+            # Avoid argument injection.
a74860
+            # See https://bugs.freedesktop.org/show_bug.cgi?id=103807
a74860
+            # URIs don't have IFS characters spaces anyway.
a74860
+            has_single_argument $1 && $(printf "$browser" "$1")
a74860
         else
a74860
             $browser "$1"
a74860
         fi
a74860
-- 
a74860
2.17.1
a74860