1
0
Fork 0
mirror of git://slackware.nl/current.git synced 2025-01-16 15:41:42 +01:00
slackware-current/source/d/binutils/patches/binutils-2.31.1-verinfo-fix-corrupt-symbol-detect.patch
Patrick J Volkerding ce9883adca Thu Sep 6 06:15:46 UTC 2018
a/acpid-2.0.30-x86_64-1.txz:  Upgraded.
a/etc-15.0-x86_64-9.txz:  Rebuilt.
  Added support for /etc/ld.so.conf.d/. Thanks to Qury.
a/kernel-firmware-20180904_85c5d90-noarch-1.txz:  Upgraded.
a/kernel-generic-4.14.68-x86_64-1.txz:  Upgraded.
a/kernel-huge-4.14.68-x86_64-1.txz:  Upgraded.
a/kernel-modules-4.14.68-x86_64-1.txz:  Upgraded.
a/pkgtools-15.0-noarch-22.txz:  Rebuilt.
  installpkg: prevent noise from the "stray cat" if tar hands it a broken
  pipe. Thanks to ivandi.
  Also (in the comments) provide a possibly better but untested solution.
  Thanks to SeB.
a/sysvinit-2.90-x86_64-2.txz:  Rebuilt.
  sysvinit-2.90 added an undocumented feature that tries to spawn agetty
  if it sees console= in the kernel command line. Avoiding the debate about
  whether this code belongs in init at all, at least such a change should
  be documented, and probably made opt-in. This patch disables the new
  behavior unless "sysvinit_agetty" is also seen in the kernel command line.
  It seems like this might have been something added for Hurd, and it might
  be wise to stick to what we've got rather than following upstream on this
  particular package. If anyone notices any other odd behavior, please let
  me know. Thanks to shastah.
a/sysvinit-scripts-2.1-noarch-19.txz:  Rebuilt.
  When checking for intel_pstate, direct the stderr to /dev/null in case
  the file doesn't exist in /sys. Thanks to ivandi.
  Allow forcing an option by editing /etc/default/cpufreq.
ap/cups-filters-1.21.2-x86_64-1.txz:  Upgraded.
ap/ghostscript-9.24-x86_64-1.txz:  Upgraded.
  Patched multiple -dSAFER sandbox bypass vulnerabilities.
  Thanks to Tavis Ormandy.
  For more information, see:
    https://www.ghostscript.com/doc/9.24/News.htm
    https://www.kb.cert.org/vuls/id/332928
  (* Security fix *)
ap/sudo-1.8.25-x86_64-1.txz:  Upgraded.
d/binutils-2.31.1-x86_64-2.txz:  Rebuilt.
  elf.c (_bfd_elf_get_symbol_version_string): Return _("<corrupt>") for
  corrupt symbol version info.
  elflink.c (bfd_elf_record_link_assignment): Always clear h->verinfo.verdef
  when overriding a dynamic definition.
  Thanks to Michael Short for pointing out the upstream patches.
d/ccache-3.4.3-x86_64-1.txz:  Upgraded.
d/kernel-headers-4.14.68-x86-1.txz:  Upgraded.
d/llvm-6.0.1-x86_64-2.txz:  Rebuilt.
  Recompiled with -DCLANG_BUILD_SHARED_LIBS=ON to fix issues when multiple
  OpenCL drivers are installed. Thanks to Heinz Wiesinger.
d/mercurial-4.7.1-x86_64-1.txz:  Upgraded.
k/kernel-source-4.14.68-noarch-1.txz:  Upgraded.
l/mozilla-nss-3.39-x86_64-1.txz:  Upgraded.
n/curl-7.61.1-x86_64-1.txz:  Upgraded.
  This update fixes an NTLM password overflow via integer overflow.
  For more information, see:
    https://curl.haxx.se/docs/CVE-2018-14618.html
    https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-14618
  (* Security fix *)
n/gnupg2-2.2.10-x86_64-1.txz:  Upgraded.
n/libtirpc-1.1.4-x86_64-1.txz:  Upgraded.
n/netatalk-3.1.11-x86_64-2.txz:  Rebuilt.
  rc.atalk: fixed errors in status output. Thanks to marav.
n/nghttp2-1.33.0-x86_64-1.txz:  Upgraded.
n/p11-kit-0.23.14-x86_64-1.txz:  Upgraded.
n/stunnel-5.49-x86_64-1.txz:  Upgraded.
x/libdrm-2.4.94-x86_64-1.txz:  Upgraded.
x/xf86-video-ati-20180824_de88ea27-x86_64-1.txz:  Upgraded.
xap/hexchat-2.14.2-x86_64-1.txz:  Upgraded.
xap/mozilla-firefox-60.2.0esr-x86_64-1.txz:  Upgraded.
  This release contains security fixes and improvements.
  For more information, see:
    https://www.mozilla.org/security/known-vulnerabilities/firefoxESR.html
  (* Security fix *)
xap/xlockmore-5.56-x86_64-1.txz:  Upgraded.
isolinux/initrd.img:  Rebuilt.
kernels/*:  Upgraded.
usb-and-pxe-installers/usbboot.img:  Rebuilt.
2018-09-06 18:00:33 +02:00

106 lines
3.8 KiB
Diff

diff -Naur a/binutils-2.31.1/bfd/ChangeLog b/binutils-2.31.1/bfd/ChangeLog
--- a/binutils-2.31.1/bfd/ChangeLog 2018-07-18 00:50:08.000000000 -0700
+++ b/binutils-2.31.1/bfd/ChangeLog 2018-08-31 02:34:06.852965351 -0700
@@ -1,3 +1,15 @@
+2018-08-25 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/23499
+ * elf.c (_bfd_elf_get_symbol_version_string): Return
+ _("<corrupt>") for corrupt symbol version info.
+
+2018-08-10 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/23499
+ * elflink.c (bfd_elf_record_link_assignment): Always clear
+ h->verinfo.verdef when overriding a dynamic definition.
+
2018-07-18 Nick Clifton <nickc@redhat.com>
2.31.1 Release point.
diff -Naur a/binutils-2.31.1/bfd/elf.c b/binutils-2.31.1/bfd/elf.c
--- a/binutils-2.31.1/bfd/elf.c 2018-08-31 01:07:56.804985073 -0700
+++ b/binutils-2.31.1/bfd/elf.c 2018-08-31 02:36:40.067964767 -0700
@@ -1884,7 +1884,7 @@
{
Elf_Internal_Verneed *t;
- version_string = "";
+ version_string = _("<corrupt>");
for (t = elf_tdata (abfd)->verref;
t != NULL;
t = t->vn_nextref)
diff -Naur a/binutils-2.31.1/bfd/elflink.c b/binutils-2.31.1/bfd/elflink.c
--- a/binutils-2.31.1/bfd/elflink.c 2018-07-13 00:33:03.000000000 -0700
+++ b/binutils-2.31.1/bfd/elflink.c 2018-08-31 01:30:01.056980022 -0700
@@ -686,13 +686,11 @@
&& !h->def_regular)
h->root.type = bfd_link_hash_undefined;
- /* If this symbol is not being provided by the linker script, and it is
- currently defined by a dynamic object, but not by a regular object,
- then clear out any version information because the symbol will not be
- associated with the dynamic object any more. */
- if (!provide
- && h->def_dynamic
- && !h->def_regular)
+ /* If this symbol is currently defined by a dynamic object, but not
+ by a regular object, then clear out any version information because
+ the symbol will not be associated with the dynamic object any
+ more. */
+ if (h->def_dynamic && !h->def_regular)
h->verinfo.verdef = NULL;
/* Make sure this symbol is not garbage collected. */
diff -Naur a/binutils-2.31.1/binutils/ChangeLog b/binutils-2.31.1/binutils/ChangeLog
--- a/binutils-2.31.1/binutils/ChangeLog 2018-07-18 00:50:26.000000000 -0700
+++ b/binutils-2.31.1/binutils/ChangeLog 2018-08-31 02:37:48.060964507 -0700
@@ -1,3 +1,9 @@
+2018-08-25 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/23499
+ * readelf.c (get_symbol_version_string): Return _("<corrupt>")
+ for corrupt symbol version info.
+
2018-07-18 Nick Clifton <nickc@redhat.com>
2.31.1 Release point.
diff -Naur a/binutils-2.31.1/binutils/readelf.c b/binutils-2.31.1/binutils/readelf.c
--- a/binutils-2.31.1/binutils/readelf.c 2018-06-24 11:38:57.000000000 -0700
+++ b/binutils-2.31.1/binutils/readelf.c 2018-08-31 02:47:39.215962252 -0700
@@ -11252,6 +11252,7 @@
unsigned char data[2];
unsigned short vers_data;
unsigned long offset;
+ unsigned short max_vd_ndx;
if (!is_dynsym
|| version_info[DT_VERSIONTAGIDX (DT_VERSYM)] == 0)
@@ -11269,6 +11270,8 @@
if ((vers_data & VERSYM_HIDDEN) == 0 && vers_data == 0)
return NULL;
+ max_vd_ndx = 0;
+
/* Usually we'd only see verdef for defined symbols, and verneed for
undefined symbols. However, symbols defined by the linker in
.dynbss for variables copied from a shared library in order to
@@ -11311,6 +11314,9 @@
ivd.vd_flags = BYTE_GET (evd.vd_flags);
}
+ if ((ivd.vd_ndx & VERSYM_VERSION) > max_vd_ndx)
+ max_vd_ndx = ivd.vd_ndx & VERSYM_VERSION;
+
off += ivd.vd_next;
}
while (ivd.vd_ndx != (vers_data & VERSYM_VERSION) && ivd.vd_next != 0);
@@ -11402,6 +11408,9 @@
return (ivna.vna_name < strtab_size
? strtab + ivna.vna_name : _("<corrupt>"));
}
+ else if ((max_vd_ndx || (vers_data & VERSYM_VERSION) != 1)
+ && (vers_data & VERSYM_VERSION) > max_vd_ndx)
+ return _("<corrupt>");
}
return NULL;
}