diff options
| author | Marius Bakke <mbakke@fastmail.com> | 2019-11-29 17:44:25 +0100 |
|---|---|---|
| committer | Marius Bakke <mbakke@fastmail.com> | 2019-12-05 17:58:59 +0100 |
| commit | 0b3df5c913af91bc196bb8cb41783126e55bf5a0 (patch) | |
| tree | ee48136358d34fc03152864c0a1622beffd8520a | |
| parent | 5d229b496373179998f6a51da47629554c2d1e18 (diff) | |
gnu: glibc: Update to 2.30.
* gnu/packages/patches/glibc-CVE-2019-19126.patch: New file.
* gnu/local.mk (dist_patch_DATA): Adjust accordingly.
* gnu/packages/base.scm (glibc): Update to 2.30.
[source](patches): Adjust for 2.30.
(glibc-2.29): New public variable.
| -rw-r--r-- | gnu/local.mk | 1 | ||||
| -rw-r--r-- | gnu/packages/base.scm | 28 | ||||
| -rw-r--r-- | gnu/packages/patches/glibc-CVE-2019-19126.patch | 22 |
3 files changed, 46 insertions, 5 deletions
diff --git a/gnu/local.mk b/gnu/local.mk index fef7fd1e289..25dfef38495 100644 --- a/gnu/local.mk +++ b/gnu/local.mk | |||
| @@ -906,6 +906,7 @@ dist_patch_DATA = \ | |||
| 906 | %D%/packages/patches/glibc-CVE-2018-11237.patch \ | 906 | %D%/packages/patches/glibc-CVE-2018-11237.patch \ |
| 907 | %D%/packages/patches/glibc-CVE-2019-7309.patch \ | 907 | %D%/packages/patches/glibc-CVE-2019-7309.patch \ |
| 908 | %D%/packages/patches/glibc-CVE-2019-9169.patch \ | 908 | %D%/packages/patches/glibc-CVE-2019-9169.patch \ |
| 909 | %D%/packages/patches/glibc-CVE-2019-19126.patch \ | ||
| 909 | %D%/packages/patches/glibc-allow-kernel-2.6.32.patch \ | 910 | %D%/packages/patches/glibc-allow-kernel-2.6.32.patch \ |
| 910 | %D%/packages/patches/glibc-boot-2.16.0.patch \ | 911 | %D%/packages/patches/glibc-boot-2.16.0.patch \ |
| 911 | %D%/packages/patches/glibc-boot-2.2.5.patch \ | 912 | %D%/packages/patches/glibc-boot-2.2.5.patch \ |
diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index a444213a84f..caaa04258c0 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm | |||
| @@ -567,13 +567,13 @@ the store.") | |||
| 567 | ;; version 2.28, GNU/Hurd used a different glibc branch. | 567 | ;; version 2.28, GNU/Hurd used a different glibc branch. |
| 568 | (package | 568 | (package |
| 569 | (name "glibc") | 569 | (name "glibc") |
| 570 | (version "2.29") | 570 | (version "2.30") |
| 571 | (source (origin | 571 | (source (origin |
| 572 | (method url-fetch) | 572 | (method url-fetch) |
| 573 | (uri (string-append "mirror://gnu/glibc/glibc-" version ".tar.xz")) | 573 | (uri (string-append "mirror://gnu/glibc/glibc-" version ".tar.xz")) |
| 574 | (sha256 | 574 | (sha256 |
| 575 | (base32 | 575 | (base32 |
| 576 | "0jzh58728flfh939a8k9pi1zdyalfzlxmwra7k0rzji5gvavivpk")) | 576 | "1bxqpg91d02qnaz837a5kamm0f43pr1il4r9pknygywsar713i72")) |
| 577 | (snippet | 577 | (snippet |
| 578 | ;; Disable 'ldconfig' and /etc/ld.so.cache. The latter is | 578 | ;; Disable 'ldconfig' and /etc/ld.so.cache. The latter is |
| 579 | ;; required on LFS distros to avoid loading the distro's libc.so | 579 | ;; required on LFS distros to avoid loading the distro's libc.so |
| @@ -585,9 +585,7 @@ the store.") | |||
| 585 | #t)) | 585 | #t)) |
| 586 | (modules '((guix build utils))) | 586 | (modules '((guix build utils))) |
| 587 | (patches (search-patches "glibc-ldd-x86_64.patch" | 587 | (patches (search-patches "glibc-ldd-x86_64.patch" |
| 588 | "glibc-CVE-2019-7309.patch" | 588 | "glibc-CVE-2019-19126.patch" |
| 589 | "glibc-CVE-2019-9169.patch" | ||
| 590 | "glibc-2.29-git-updates.patch" | ||
| 591 | "glibc-hidden-visibility-ldconfig.patch" | 589 | "glibc-hidden-visibility-ldconfig.patch" |
| 592 | "glibc-versioned-locpath.patch" | 590 | "glibc-versioned-locpath.patch" |
| 593 | "glibc-allow-kernel-2.6.32.patch" | 591 | "glibc-allow-kernel-2.6.32.patch" |
| @@ -819,6 +817,26 @@ with the Linux kernel.") | |||
| 819 | ;; Below are old libc versions, which we use mostly to build locale data in | 817 | ;; Below are old libc versions, which we use mostly to build locale data in |
| 820 | ;; the old format (which the new libc cannot cope with.) | 818 | ;; the old format (which the new libc cannot cope with.) |
| 821 | 819 | ||
| 820 | (define-public glibc-2.29 | ||
| 821 | (package | ||
| 822 | (inherit glibc) | ||
| 823 | (version "2.29") | ||
| 824 | (source (origin | ||
| 825 | (inherit (package-source glibc)) | ||
| 826 | (uri (string-append "mirror://gnu/glibc/glibc-" version ".tar.xz")) | ||
| 827 | (sha256 | ||
| 828 | (base32 | ||
| 829 | "0jzh58728flfh939a8k9pi1zdyalfzlxmwra7k0rzji5gvavivpk")) | ||
| 830 | (patches (search-patches "glibc-ldd-x86_64.patch" | ||
| 831 | "glibc-CVE-2019-7309.patch" | ||
| 832 | "glibc-CVE-2019-9169.patch" | ||
| 833 | "glibc-2.29-git-updates.patch" | ||
| 834 | "glibc-hidden-visibility-ldconfig.patch" | ||
| 835 | "glibc-versioned-locpath.patch" | ||
| 836 | "glibc-allow-kernel-2.6.32.patch" | ||
| 837 | "glibc-reinstate-prlimit64-fallback.patch" | ||
| 838 | "glibc-supported-locales.patch")))))) | ||
| 839 | |||
| 822 | (define-public glibc-2.28 | 840 | (define-public glibc-2.28 |
| 823 | (package | 841 | (package |
| 824 | (inherit glibc) | 842 | (inherit glibc) |
diff --git a/gnu/packages/patches/glibc-CVE-2019-19126.patch b/gnu/packages/patches/glibc-CVE-2019-19126.patch new file mode 100644 index 00000000000..5b9ac58ab7f --- /dev/null +++ b/gnu/packages/patches/glibc-CVE-2019-19126.patch | |||
| @@ -0,0 +1,22 @@ | |||
| 1 | Fix CVE-2019-19126: | ||
| 2 | |||
| 3 | https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-19126 | ||
| 4 | https://sourceware.org/bugzilla/show_bug.cgi?id=25204 | ||
| 5 | |||
| 6 | Taken from upstream: | ||
| 7 | https://sourceware.org/git/?p=glibc.git;a=commit;h=37c90e117310728a4ad1eb998c0bbe7d79c4a398 | ||
| 8 | |||
| 9 | diff --git a/sysdeps/unix/sysv/linux/x86_64/64/dl-librecon.h b/sysdeps/unix/sysv/linux/x86_64/64/dl-librecon.h | ||
| 10 | index 975cbe2..df2cdfd 100644 | ||
| 11 | --- a/sysdeps/unix/sysv/linux/x86_64/64/dl-librecon.h | ||
| 12 | +++ b/sysdeps/unix/sysv/linux/x86_64/64/dl-librecon.h | ||
| 13 | @@ -31,7 +31,8 @@ | ||
| 14 | environment variable, LD_PREFER_MAP_32BIT_EXEC. */ | ||
| 15 | #define EXTRA_LD_ENVVARS \ | ||
| 16 | case 21: \ | ||
| 17 | - if (memcmp (envline, "PREFER_MAP_32BIT_EXEC", 21) == 0) \ | ||
| 18 | + if (!__libc_enable_secure \ | ||
| 19 | + && memcmp (envline, "PREFER_MAP_32BIT_EXEC", 21) == 0) \ | ||
| 20 | GLRO(dl_x86_cpu_features).feature[index_arch_Prefer_MAP_32BIT_EXEC] \ | ||
| 21 | |= bit_arch_Prefer_MAP_32BIT_EXEC; \ | ||
| 22 | break; | ||
