Source: libowfat Version: 0.29-2 Severity: important Tags: patch User: [email protected] Usertags: fcntl-fd-cloexec
Hi! This package contains code that tries to set the FD_CLOEXEC flag for a file descriptor, but it does using F_SETFL instead of F_SETFD. Using that value on F_SETFL is just wrong, and might make the call fail on some systems, as it's requesting to set an undetermined flag. For example on GNU/* FD_CLOEXEC has value 1, which matches with O_WRONLY. This will cause the code to at least leak file descriptors, and at worst to terminate execution. Attached a patch fixing this. Thanks, Guillem
From 7a37a81a87d5c78a2e8e90781898d88df9f861af Mon Sep 17 00:00:00 2001 From: Guillem Jover <[email protected]> Date: Tue, 18 Dec 2012 17:32:04 +0100 Subject: [PATCH] libowfat: Set FD_CLOEXEC correctly using F_SETFD not F_SETFL Using that value on F_SETFL is just wrong, and might make the call fail on some systems, as it's requesting to set an undetermined flag. For example on GNU/* FD_CLOEXEC has value 1, which matches with O_WRONLY. This might cause the code to at least leak file descriptors, and at worst to terminate execution. --- io/io_closeonexec.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/io/io_closeonexec.c b/io/io_closeonexec.c index b36d636..aad4773 100644 --- a/io/io_closeonexec.c +++ b/io/io_closeonexec.c @@ -5,6 +5,6 @@ void io_closeonexec(int64 d) { #ifndef __MINGW32__ - fcntl(d,F_SETFL,fcntl(d,F_GETFL,0) | FD_CLOEXEC); + fcntl(d,F_SETFD,fcntl(d,F_GETFD,0) | FD_CLOEXEC); #endif } -- 1.8.1.rc0

