From 7e5f8b1f5a3cb6c7c9f784900f3b0b23215441bb Mon Sep 17 00:00:00 2001 From: Christos Zoulas Date: Wed, 25 Feb 2015 21:39:30 +0100 Subject: Set close-on-exec for font file I/O. Reviewed-by: Alan Coopersmith Signed-off-by: Thomas Klausner (cherry picked from commit d9fda3d247942292a5f24694c22337c547006e11) --- libXfont/src/fontfile/fileio.c | 5 ++++- libXfont/src/fontfile/filewr.c | 12 +++++++----- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/libXfont/src/fontfile/fileio.c b/libXfont/src/fontfile/fileio.c index 80af51193..d44cecdc4 100644 --- a/libXfont/src/fontfile/fileio.c +++ b/libXfont/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/libXfont/src/fontfile/filewr.c b/libXfont/src/fontfile/filewr.c index bcc7b1eda..859a0bec1 100644 --- a/libXfont/src/fontfile/filewr.c +++ b/libXfont/src/fontfile/filewr.c @@ -33,17 +33,19 @@ in this Software without prior written authorization from The Open Group. #endif #include #include +#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); -- cgit v1.2.3