[PATCH:libXfont 1/2] Set close-on-exec for font file I/O.

Thomas Klausner wiz at NetBSD.org
Wed Feb 25 12:45:49 PST 2015


From: Christos Zoulas <christos at NetBSD.org>

Signed-off-by: Thomas Klausner <wiz at NetBSD.org>
---
 src/fontfile/fileio.c |  5 ++++-
 src/fontfile/filewr.c | 12 +++++++-----
 2 files changed, 11 insertions(+), 6 deletions(-)

diff --git a/src/fontfile/fileio.c b/src/fontfile/fileio.c
index 80af511..d44cecd 100644
--- a/src/fontfile/fileio.c
+++ b/src/fontfile/fileio.c
@@ -36,6 +36,9 @@ in this Software without prior written authorization from The Open Group.
 #ifndef O_BINARY
 #define O_BINARY O_RDONLY
 #endif
+#ifndef O_CLOEXEC
+#define O_CLOEXEC 0
+#endif
 
 FontFilePtr
 FontFileOpen (const char *name)
@@ -44,7 +47,7 @@ FontFileOpen (const char *name)
     int		len;
     BufFilePtr	raw, cooked;
 
-    fd = open (name, O_BINARY);
+    fd = open (name, O_BINARY|O_CLOEXEC);
     if (fd < 0)
 	return 0;
     raw = BufFileOpenRead (fd);
diff --git a/src/fontfile/filewr.c b/src/fontfile/filewr.c
index bcc7b1e..859a0be 100644
--- a/src/fontfile/filewr.c
+++ b/src/fontfile/filewr.c
@@ -33,17 +33,19 @@ in this Software without prior written authorization from The Open Group.
 #endif
 #include <X11/fonts/fntfilio.h>
 #include <X11/Xos.h>
+#ifndef O_BINARY
+#define O_BINARY	0
+#endif
+#ifndef O_CLOEXEC
+#define O_CLOEXEC	0
+#endif
 
 FontFilePtr
 FontFileOpenWrite (const char *name)
 {
     int	fd;
 
-#if defined(WIN32) || defined(__CYGWIN__)
-    fd = open (name, O_CREAT|O_TRUNC|O_RDWR|O_BINARY, 0666);
-#else
-    fd = creat (name, 0666);
-#endif
+    fd = open (name, O_CREAT|O_TRUNC|O_RDWR|O_BINARY|O_CLOEXEC, 0666);
     if (fd < 0)
 	return 0;
     return (FontFilePtr) BufFileOpenWrite (fd);
-- 
2.3.0



More information about the xorg-devel mailing list