From 5c18c550621c10d6e8bc3ec56c910fc910182f99 Mon Sep 17 00:00:00 2001 From: Robin Gloster Date: Tue, 19 Sep 2017 13:39:40 +0200 Subject: dmtcp: fix buffer overflow due to too long ld-linux.so path fixes #29565 --- pkgs/os-specific/linux/dmtcp/default.nix | 5 ++--- pkgs/os-specific/linux/dmtcp/ld-linux-so-buffer-size.patch | 11 +++++++++++ 2 files changed, 13 insertions(+), 3 deletions(-) create mode 100644 pkgs/os-specific/linux/dmtcp/ld-linux-so-buffer-size.patch (limited to 'pkgs/os-specific/linux/dmtcp') 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); -- cgit 1.4.1