lib: Use fdopen_keepfd()
authorVolker Lendecke <vl@samba.org>
Wed, 10 Apr 2024 11:11:11 +0000 (13:11 +0200)
committerMartin Schwenke <martins@samba.org>
Tue, 16 Apr 2024 23:51:45 +0000 (23:51 +0000)
Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Martin Schwenke <mschwenke@ddn.com>
source3/lib/tallocmsg.c

index da05357a4dfc082c2e3b643c6b4733380d4e09d0..a5c6603a92b7702968874071c9b9c794d5fb4acd 100644 (file)
 #include "source3/lib/tallocmsg.h"
 #include "lib/util/talloc_report_printf.h"
 #include "lib/util/debug.h"
+#include "lib/util/util_file.h"
 
 static bool pool_usage_filter(struct messaging_rec *rec, void *private_data)
 {
        FILE *f = NULL;
-       int fd;
 
        if (rec->msg_type != MSG_REQ_POOL_USAGE) {
                return false;
@@ -38,18 +38,9 @@ static bool pool_usage_filter(struct messaging_rec *rec, void *private_data)
                return false;
        }
 
-       fd = dup(rec->fds[0]);
-       if (fd == -1) {
-               DBG_DEBUG("dup(%"PRIi64") failed: %s\n",
-                         rec->fds[0],
-                         strerror(errno));
-               return false;
-       }
-
-       f = fdopen(fd, "w");
+       f = fdopen_keepfd(rec->fds[0], "w");
        if (f == NULL) {
                DBG_DEBUG("fdopen failed: %s\n", strerror(errno));
-               close(fd);
                return false;
        }