diff options
author | Vladimír Čunát <vcunat@gmail.com> | 2017-04-10 11:13:00 +0200 |
---|---|---|
committer | Vladimír Čunát <vcunat@gmail.com> | 2017-04-10 11:13:00 +0200 |
commit | c30b12b9a5cc35b658e65b3ff54e9c877f1380ad (patch) | |
tree | d0c2a7e0e5719fdcf6177db4496bb9e5f3ea7d94 /pkgs/development/libraries/glibc | |
parent | a05959e191c8bef969fd84a8dce0343ef6dcd7e0 (diff) | |
download | nixpkgs-c30b12b9a5cc35b658e65b3ff54e9c877f1380ad.tar nixpkgs-c30b12b9a5cc35b658e65b3ff54e9c877f1380ad.tar.gz nixpkgs-c30b12b9a5cc35b658e65b3ff54e9c877f1380ad.tar.bz2 nixpkgs-c30b12b9a5cc35b658e65b3ff54e9c877f1380ad.tar.lz nixpkgs-c30b12b9a5cc35b658e65b3ff54e9c877f1380ad.tar.xz nixpkgs-c30b12b9a5cc35b658e65b3ff54e9c877f1380ad.tar.zst nixpkgs-c30b12b9a5cc35b658e65b3ff54e9c877f1380ad.zip |
glibc: fix i686 crashes via an upstream patch
Fixes #23177.
Diffstat (limited to 'pkgs/development/libraries/glibc')
-rw-r--r-- | pkgs/development/libraries/glibc/common.nix | 2 | ||||
-rw-r--r-- | pkgs/development/libraries/glibc/fix-i686-memchr.patch | 23 |
2 files changed, 25 insertions, 0 deletions
diff --git a/pkgs/development/libraries/glibc/common.nix b/pkgs/development/libraries/glibc/common.nix index 7128f560619..3d146c54398 100644 --- a/pkgs/development/libraries/glibc/common.nix +++ b/pkgs/development/libraries/glibc/common.nix @@ -48,6 +48,8 @@ stdenv.mkDerivation ({ "/bin:/usr/bin", which is inappropriate on NixOS machines. This patch extends the search path by "/run/current-system/sw/bin". */ ./fix_path_attribute_in_getconf.patch + + ./fix-i686-memchr.patch ]; postPatch = diff --git a/pkgs/development/libraries/glibc/fix-i686-memchr.patch b/pkgs/development/libraries/glibc/fix-i686-memchr.patch new file mode 100644 index 00000000000..32564de9f3a --- /dev/null +++ b/pkgs/development/libraries/glibc/fix-i686-memchr.patch @@ -0,0 +1,23 @@ +Fix i686 memchr overflow calculation (BZ#21182) + +https://sourceware.org/git/?p=glibc.git;a=commit;h=3abeeec5f46ff03 +diff --git a/sysdeps/i386/i686/multiarch/memchr-sse2.S b/sysdeps/i386/i686/multiarch/memchr-sse2.S +index 910679c..e41f324 100644 +--- a/sysdeps/i386/i686/multiarch/memchr-sse2.S ++++ b/sysdeps/i386/i686/multiarch/memchr-sse2.S +@@ -117,7 +117,6 @@ L(crosscache): + + # ifndef USE_AS_RAWMEMCHR + jnz L(match_case2_prolog1) +- lea -16(%edx), %edx + /* Calculate the last acceptable address and check for possible + addition overflow by using satured math: + edx = ecx + edx +@@ -125,6 +124,7 @@ L(crosscache): + add %ecx, %edx + sbb %eax, %eax + or %eax, %edx ++ sub $16, %edx + jbe L(return_null) + lea 16(%edi), %edi + # else |