summary refs log tree commit diff
path: root/pkgs/os-specific/linux/dmtcp
diff options
context:
space:
mode:
authorRobin Gloster <mail@glob.in>2017-09-19 13:39:40 +0200
committerRobin Gloster <mail@glob.in>2017-09-19 13:41:12 +0200
commit5c18c550621c10d6e8bc3ec56c910fc910182f99 (patch)
tree03c07a55f2b2cf1329b4756d141fe1d3d1a12559 /pkgs/os-specific/linux/dmtcp
parentd63b59adf956223b5e3819fc9c1699b3b80933cc (diff)
downloadnixpkgs-5c18c550621c10d6e8bc3ec56c910fc910182f99.tar
nixpkgs-5c18c550621c10d6e8bc3ec56c910fc910182f99.tar.gz
nixpkgs-5c18c550621c10d6e8bc3ec56c910fc910182f99.tar.bz2
nixpkgs-5c18c550621c10d6e8bc3ec56c910fc910182f99.tar.lz
nixpkgs-5c18c550621c10d6e8bc3ec56c910fc910182f99.tar.xz
nixpkgs-5c18c550621c10d6e8bc3ec56c910fc910182f99.tar.zst
nixpkgs-5c18c550621c10d6e8bc3ec56c910fc910182f99.zip
dmtcp: fix buffer overflow due to too long ld-linux.so path
fixes #29565
Diffstat (limited to 'pkgs/os-specific/linux/dmtcp')
-rw-r--r--pkgs/os-specific/linux/dmtcp/default.nix5
-rw-r--r--pkgs/os-specific/linux/dmtcp/ld-linux-so-buffer-size.patch11
2 files changed, 13 insertions, 3 deletions
diff --git a/pkgs/os-specific/linux/dmtcp/default.nix b/pkgs/os-specific/linux/dmtcp/default.nix
index cedd5a1cb76..76f9d8c128c 100644
--- a/pkgs/os-specific/linux/dmtcp/default.nix
+++ b/pkgs/os-specific/linux/dmtcp/default.nix
@@ -13,15 +13,14 @@ stdenv.mkDerivation rec {
 
   dontDisableStatic = true;
 
+  patches = [ ./ld-linux-so-buffer-size.patch ];
+
   postPatch = ''
     patchShebangs .
 
     substituteInPlace configure \
       --replace '#define ELF_INTERPRETER "$interp"' \
                 "#define ELF_INTERPRETER \"$(cat $NIX_CC/nix-support/dynamic-linker)\""
-  '';
-
-  preConfigure = ''
     substituteInPlace src/dmtcp_coordinator.cpp \
       --replace /bin/bash ${stdenv.shell}
     substituteInPlace util/gdb-add-symbol-file \
diff --git a/pkgs/os-specific/linux/dmtcp/ld-linux-so-buffer-size.patch b/pkgs/os-specific/linux/dmtcp/ld-linux-so-buffer-size.patch
new file mode 100644
index 00000000000..5a81dad0cc9
--- /dev/null
+++ b/pkgs/os-specific/linux/dmtcp/ld-linux-so-buffer-size.patch
@@ -0,0 +1,11 @@
+--- dmtcp-2.5.1-src/src/util_exec.cpp	2017-09-19 13:36:22.947587034 +0200
++++ dmtcp-2.5.1-src/src/util_exec.cpp	2017-09-19 13:36:32.221313460 +0200
+@@ -178,7 +178,7 @@
+ 
+ static string ld_linux_so_path(int version, bool is32bitElf = false)
+ {
+-  char buf[80];
++  char buf[128];
+ #if (defined(__x86_64__) || defined(__aarch64__)) && !defined(CONFIG_M32)
+   if (is32bitElf) {
+     sprintf(buf, "/lib/ld-linux.so.%d", version);