From fcfb718ec7a82eb9626915c67138dea05795814e Mon Sep 17 00:00:00 2001 From: liqingqing_1229 Date: Tue, 28 Dec 2021 20:45:07 +0800 Subject: [PATCH] support: Also return fd when it is 0 --- glibc.spec | 6 ++- support-Also-return-fd-when-it-is-0.patch | 45 +++++++++++++++++++++++ 2 files changed, 50 insertions(+), 1 deletion(-) create mode 100644 support-Also-return-fd-when-it-is-0.patch diff --git a/glibc.spec b/glibc.spec index 4f63e1b..f836b33 100644 --- a/glibc.spec +++ b/glibc.spec @@ -65,7 +65,7 @@ ############################################################################## Name: glibc Version: 2.34 -Release: 38 +Release: 39 Summary: The GNU libc libraries License: %{all_license} URL: http://www.gnu.org/software/glibc/ @@ -146,6 +146,7 @@ Patch59: io-Fix-ftw-internal-realloc-buffer-BZ-28126.patch Patch60: Do-not-define-tgmath.h-fmaxmag-fminmag-macros-for-C2.patch Patch61: ld.so-Don-t-fill-the-DT_DEBUG-entry-in-ld.so-BZ-2812.patch Patch62: elf-Replace-nsid-with-args.nsid-BZ-27609.patch +Patch63: support-Also-return-fd-when-it-is-0.patch Patch9000: turn-default-value-of-x86_rep_stosb_threshold_form_2K_to_1M.patch Patch9001: delete-no-hard-link-to-avoid-all_language-package-to.patch @@ -1342,6 +1343,9 @@ fi %endif %changelog +* Tue Dec 28 2021 Qingqing Li - 2.34-39 +- support: Also return fd when it is 0. + * Mon Dec 27 2021 Qingqing Li - 2.34-38 - elf: replace nsid with args.nsid [BZ #27609] diff --git a/support-Also-return-fd-when-it-is-0.patch b/support-Also-return-fd-when-it-is-0.patch new file mode 100644 index 0000000..150b4c3 --- /dev/null +++ b/support-Also-return-fd-when-it-is-0.patch @@ -0,0 +1,45 @@ +From 27b6edbb090f736b101f569620d8ad0e7217ddf8 Mon Sep 17 00:00:00 2001 +From: Siddhesh Poyarekar +Date: Wed, 6 Oct 2021 21:48:35 +0530 +Subject: [PATCH] support: Also return fd when it is 0 + +The fd validity check in open_dev_null checks if fd > 0, which would +lead to a leaked fd if it is == 0. + +Signed-off-by: Siddhesh Poyarekar +Reviewed-by: Adhemerval Zanella +--- + support/support-open-dev-null-range.c | 14 +++++++------- + 1 file changed, 7 insertions(+), 7 deletions(-) + +diff --git a/support/support-open-dev-null-range.c b/support/support-open-dev-null-range.c +index 80d9dba..66a8504 100644 +--- a/support/support-open-dev-null-range.c ++++ b/support/support-open-dev-null-range.c +@@ -40,16 +40,16 @@ increase_nofile (void) + static int + open_dev_null (int flags, mode_t mode) + { +- int fd = open64 ("/dev/null", flags, mode); +- if (fd > 0) +- return fd; ++ int fd = open64 ("/dev/null", flags, mode); ++ if (fd >= 0) ++ return fd; + +- if (fd < 0 && errno != EMFILE) +- FAIL_EXIT1 ("open64 (\"/dev/null\", 0x%x, 0%o): %m", flags, mode); ++ if (fd < 0 && errno != EMFILE) ++ FAIL_EXIT1 ("open64 (\"/dev/null\", 0x%x, 0%o): %m", flags, mode); + +- increase_nofile (); ++ increase_nofile (); + +- return xopen ("/dev/null", flags, mode); ++ return xopen ("/dev/null", flags, mode); + } + + struct range +-- +1.8.3.1 + -- Gitee