bzip2/bzip2-ocloexec.patch

20 lines
473 B
Diff
Raw Normal View History

--- bzlib.c.orig
+++ bzlib.c
@@ -1414,7 +1414,15 @@ BZFILE * bzopen_or_bzdopen
}
mode++;
}
- strcat(mode2, writing ? "w" : "r" );
+
+ /* open fds with O_CLOEXEC _only_ when we are the initiator
+ * aka. bzopen() but not bzdopen() */
+ if(open_mode == 0) {
+ strcat (mode2, writing ? "we" : "re" );
+ } else {
+ strcat(mode2, writing ? "w" : "r" );
+ }
+
strcat(mode2,"b"); /* binary mode */
if (open_mode==0) {