20 lines
473 B
Diff
20 lines
473 B
Diff
|
--- 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) {
|