[glibc/release/2.37/master] elf: Fix subprocess status handling for tst-dlopen-sgid (bug 32987)

Florian Weimer fw@sourceware.org
Wed May 21 07:01:47 GMT 2025


https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=fba1c47cb5ffb4b6e1d5e0ed20d24f982bef41f1

commit fba1c47cb5ffb4b6e1d5e0ed20d24f982bef41f1
Author: Florian Weimer <fweimer@redhat.com>
Date:   Wed May 21 08:43:32 2025 +0200

    elf: Fix subprocess status handling for tst-dlopen-sgid (bug 32987)
    
    This should really move into support_capture_subprogram_self_sgid.
    
    Reviewed-by: Sam James <sam@gentoo.org>
    (cherry picked from commit 35fc356fa3b4f485bd3ba3114c9f774e5df7d3c2)

Diff:
---
 NEWS                  |  1 +
 elf/tst-dlopen-sgid.c | 12 ++++++++++--
 2 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/NEWS b/NEWS
index 0d6c4b0f6e..f2f57c4dba 100644
--- a/NEWS
+++ b/NEWS
@@ -79,6 +79,7 @@ The following bugs are resolved with this release:
   [32231] elf: Change ldconfig auxcache magic number
   [32470] x86: Avoid integer truncation with large cache sizes
   [32582] Fix underallocation of abort_msg_s struct (CVE-2025-0395)
+  [32987] elf: Fix subprocess status handling for tst-dlopen-sgid
 
 Version 2.37
 
diff --git a/elf/tst-dlopen-sgid.c b/elf/tst-dlopen-sgid.c
index 47829a405e..5688b79f2e 100644
--- a/elf/tst-dlopen-sgid.c
+++ b/elf/tst-dlopen-sgid.c
@@ -26,6 +26,8 @@
 #include <support/check.h>
 #include <support/support.h>
 #include <support/temp_file.h>
+#include <support/test-driver.h>
+#include <sys/wait.h>
 #include <unistd.h>
 
 /* This is the name of our test object.  Use a custom module for
@@ -66,10 +68,16 @@ do_test (void)
     free (from);
   }
 
-  TEST_COMPARE (support_capture_subprogram_self_sgid (magic_argument), 0);
-
   free (libdir);
 
+  int status = support_capture_subprogram_self_sgid (magic_argument);
+
+  if (WEXITSTATUS (status) == EXIT_UNSUPPORTED)
+    return EXIT_UNSUPPORTED;
+
+  if (!WIFEXITED (status))
+    FAIL_EXIT1 ("Unexpected exit status %d from child process\n", status);
+
   return 0;
 }


More information about the Glibc-cvs mailing list