diff --git a/CVE-2022-47008.patch b/CVE-2022-47008.patch new file mode 100644 index 0000000000000000000000000000000000000000..8dffd8202b5a86256b0e61b1a390832af104e372 --- /dev/null +++ b/CVE-2022-47008.patch @@ -0,0 +1,61 @@ +From d6e1d48c83b165c129cb0aa78905f7ca80a1f682 Mon Sep 17 00:00:00 2001 +From: Alan Modra +Date: Fri, 17 Jun 2022 09:13:38 +0930 +Subject: [PATCH] PR29255, memory leak in make_tempdir + + PR 29255 + * bucomm.c (make_tempdir, make_tempname): Free template on all + failure paths. +--- + binutils/bucomm.c | 20 +++++++++++--------- + 1 file changed, 11 insertions(+), 9 deletions(-) + +diff --git a/binutils/bucomm.c b/binutils/bucomm.c +index fdc2209df9c..4395cb9f7f5 100644 +--- a/binutils/bucomm.c ++++ b/binutils/bucomm.c +@@ -537,8 +537,9 @@ make_tempname (const char *filename, int *ofd) + #else + tmpname = mktemp (tmpname); + if (tmpname == NULL) +- return NULL; +- fd = open (tmpname, O_RDWR | O_CREAT | O_EXCL, 0600); ++ fd = -1; ++ else ++ fd = open (tmpname, O_RDWR | O_CREAT | O_EXCL, 0600); + #endif + if (fd == -1) + { +@@ -556,22 +557,23 @@ char * + make_tempdir (const char *filename) + { + char *tmpname = template_in_dir (filename); ++ char *ret; + + #ifdef HAVE_MKDTEMP +- return mkdtemp (tmpname); ++ ret = mkdtemp (tmpname); + #else +- tmpname = mktemp (tmpname); +- if (tmpname == NULL) +- return NULL; ++ ret = mktemp (tmpname); + #if defined (_WIN32) && !defined (__CYGWIN32__) + if (mkdir (tmpname) != 0) +- return NULL; ++ ret = NULL; + #else + if (mkdir (tmpname, 0700) != 0) +- return NULL; ++ ret = NULL; + #endif +- return tmpname; + #endif ++ if (ret == NULL) ++ free (tmpname); ++ return ret; + } + + /* Parse a string into a VMA, with a fatal error if it can't be +-- +2.39.3 diff --git a/binutils.spec b/binutils.spec index bafdffd0492decced55f48976a0c3b7d2ddc3f1e..a30708f3897e8730a946f14cdafcdac3f64b7bd5 100644 --- a/binutils.spec +++ b/binutils.spec @@ -1,7 +1,7 @@ Summary: Binary utilities Name: binutils Version: 2.34 -Release: 22 +Release: 23 License: GPLv3+ URL: https://sourceware.org/binutils @@ -59,6 +59,7 @@ Patch42: backport-0001-CVE-2021-42574.patch Patch43: backport-0002-CVE-2021-42574.patch Patch44: Fix-gold-relocation-offset.patch Patch45: Fix-gold-adrp-signed-shift.patch +Patch46: CVE-2022-47008.patch Provides: bundled(libiberty) @@ -337,6 +338,9 @@ fi %{_infodir}/bfd*info* %changelog +* Wed Aug 23 2023 liningjie - 2.34-23 +- fix CVE-2022-47008 + * Tue Oct 18 2022 konglidong - 2.34-22 - DESC:fix the changelog exception macro