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