Hi.

The patch is about sensitive handling of file descriptors opened
by make's jobserver.

Ready for master?
Thanks,
Martin

        PR testsuite/102742

libbacktrace/ChangeLog:

        * btest.c (check_open_files): Ignore file descriptors provided
        by jobserver.
---
 libbacktrace/btest.c | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/libbacktrace/btest.c b/libbacktrace/btest.c
index 9f9c03babf3..a1ea93728be 100644
--- a/libbacktrace/btest.c
+++ b/libbacktrace/btest.c
@@ -464,9 +464,25 @@ static void
 check_open_files (void)
 {
   int i;
+  int rfd = -1;
+  int wfd = -1;
+
+#define JS_NEEDLE "--jobserver-auth="
+
+  /* Ignore file descriptors provided by jobserver.  */
+  const char *makeflags = getenv ("MAKEFLAGS");
+  if (makeflags != NULL)
+    {
+      const char *n = strstr (makeflags, JS_NEEDLE);
+      if (n != NULL)
+       sscanf (n + strlen (JS_NEEDLE), "%d,%d", &rfd, &wfd);
+    }
for (i = 3; i < 10; i++)
     {
+      if (i == rfd || i == wfd)
+       continue;
+
       if (close (i) == 0)
        {
          fprintf (stderr,
--
2.33.1

Reply via email to