[glib/glib-2-70: 10/18] gbacktrace: Fix fcntl command arguments not being checked




commit 4d8c5b6d77ed5da355d6c59465dffa2ad5648894
Author: Egor Bychin <e bychin drweb com>
Date:   Mon Oct 11 14:08:34 2021 +0300

    gbacktrace: Fix fcntl command arguments not being checked

 glib/gbacktrace.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)
---
diff --git a/glib/gbacktrace.c b/glib/gbacktrace.c
index 61810735f..eb9ec8d66 100644
--- a/glib/gbacktrace.c
+++ b/glib/gbacktrace.c
@@ -340,7 +340,11 @@ stack_trace (const char * const *args)
       /* Save stderr for printing failure below */
       int old_err = dup (2);
       if (old_err != -1)
-        fcntl (old_err, F_SETFD, fcntl (old_err, F_GETFD) | FD_CLOEXEC);
+       {
+         int getfd = fcntl (old_err, F_GETFD);
+         if (getfd != -1)
+           (void) fcntl (old_err, F_SETFD, getfd | FD_CLOEXEC);
+       }
 
       close (0); dup (in_fd[0]);   /* set the stdin to the in pipe */
       close (1); dup (out_fd[1]);  /* set the stdout to the out pipe */


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]