summary refs log tree commit diff
path: root/pkgs/applications
diff options
context:
space:
mode:
authorMichael Raskin <7c6f434c@mail.ru>2018-03-06 15:15:08 +0000
committerGitHub <noreply@github.com>2018-03-06 15:15:08 +0000
commitda97c73fb3576930712463d420fd23e6d7d69fc0 (patch)
treef3604ace9e032a5a829394a5ff83fcd15704f51c /pkgs/applications
parent9d937e3fc8013f335ca5c2de94de26a00b6d84d7 (diff)
parent96ebf614ad267150f417faeb122d80588e414d6d (diff)
downloadnixpkgs-da97c73fb3576930712463d420fd23e6d7d69fc0.tar
nixpkgs-da97c73fb3576930712463d420fd23e6d7d69fc0.tar.gz
nixpkgs-da97c73fb3576930712463d420fd23e6d7d69fc0.tar.bz2
nixpkgs-da97c73fb3576930712463d420fd23e6d7d69fc0.tar.lz
nixpkgs-da97c73fb3576930712463d420fd23e6d7d69fc0.tar.xz
nixpkgs-da97c73fb3576930712463d420fd23e6d7d69fc0.tar.zst
nixpkgs-da97c73fb3576930712463d420fd23e6d7d69fc0.zip
Merge pull request #36375 from volth/commandLineArgs-escaping
chromium, google-chrome: fix escaping of commandLineArgs
Diffstat (limited to 'pkgs/applications')
-rw-r--r--pkgs/applications/networking/browsers/chromium/default.nix2
-rw-r--r--pkgs/applications/networking/browsers/google-chrome/default.nix17
2 files changed, 8 insertions, 11 deletions
diff --git a/pkgs/applications/networking/browsers/chromium/default.nix b/pkgs/applications/networking/browsers/chromium/default.nix
index 1f6eb7c178f..1458a181656 100644
--- a/pkgs/applications/networking/browsers/chromium/default.nix
+++ b/pkgs/applications/networking/browsers/chromium/default.nix
@@ -90,7 +90,7 @@ in stdenv.mkDerivation {
     mkdir -p "$out/bin"
 
     eval makeWrapper "${browserBinary}" "$out/bin/chromium" \
-      ${commandLineArgs} \
+      --add-flags ${escapeShellArg (escapeShellArg commandLineArgs)} \
       ${concatMapStringsSep " " getWrapperFlags chromium.plugins.enabled}
 
     ed -v -s "$out/bin/chromium" << EOF
diff --git a/pkgs/applications/networking/browsers/google-chrome/default.nix b/pkgs/applications/networking/browsers/google-chrome/default.nix
index eaa05726f1c..d2d26190ce0 100644
--- a/pkgs/applications/networking/browsers/google-chrome/default.nix
+++ b/pkgs/applications/networking/browsers/google-chrome/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, patchelf, bash
+{ stdenv, fetchurl, patchelf, makeWrapper
 
 # Linked dynamic libraries.
 , glib, fontconfig, freetype, pango, cairo, libX11, libXi, atk, gconf, nss, nspr
@@ -72,7 +72,7 @@ in stdenv.mkDerivation rec {
   src = chromium.upstream-info.binary;
 
   buildInputs = [
-    patchelf
+    patchelf makeWrapper
 
     # needed for GSETTINGS_SCHEMAS_PATH
     gsettings-desktop-schemas glib gtk
@@ -120,14 +120,11 @@ in stdenv.mkDerivation rec {
       mv "$icon_file" "$logo_output_path/google-$appname.png"
     done
 
-    cat > $exe << EOF
-    #!${bash}/bin/sh
-    export LD_LIBRARY_PATH=$rpath\''${LD_LIBRARY_PATH:+:\$LD_LIBRARY_PATH}
-    export PATH=$binpath\''${PATH:+:\$PATH}
-    export XDG_DATA_DIRS=$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH\''${XDG_DATA_DIRS:+:}\$XDG_DATA_DIRS
-    $out/share/google/$appname/google-$appname ${commandLineArgs} "\$@"
-    EOF
-    chmod +x $exe
+    makeWrapper "$out/share/google/$appname/google-$appname" "$exe" \
+      --prefix LD_LIBRARY_PATH : "$rpath" \
+      --prefix PATH            : "$binpath" \
+      --prefix XDG_DATA_DIRS   : "$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" \
+      --add-flags ${escapeShellArg commandLineArgs}
 
     for elf in $out/share/google/$appname/{chrome,chrome-sandbox,nacl_helper}; do
       patchelf --set-rpath $rpath $elf