[FFmpeg-cvslog] avutil/file_open: avoid file handle inheritance on Windows
Tobias Rapp
git at videolan.org
Wed Nov 11 02:46:48 CET 2015
ffmpeg | branch: release/2.8 | Tobias Rapp <t.rapp at noa-audio.com> | Thu Oct 29 09:11:37 2015 +0100| [c6c801d993bb18e8cc67b43a1aa94e28ee4d3cd9] | committer: Michael Niedermayer
avutil/file_open: avoid file handle inheritance on Windows
Avoids inheritance of file handles on Windows systems similar to the
O_CLOEXEC/FD_CLOEXEC flag on Linux.
Fixes file lock issues in Windows applications when a child process
is started with handle inheritance enabled (standard input/output
redirection) while a FFmpeg transcoding is running in the parent
process.
Links relevant to the subject:
https://msdn.microsoft.com/en-us/library/w7sa2b22.aspx
Describes the _wsopen() function and the O_NOINHERIT flag. File handles
opened by _wsopen() are inheritable by default.
https://msdn.microsoft.com/en-us/library/windows/desktop/ms682425%28v=vs.85%29.aspx
Describes handle inheritance when creating new processes. Handle
inheritance must be enabled (bInheritHandles = TRUE) e.g. when you want
to pass handles for stdin/stdout via lpStartupInfo.
Signed-off-by: Tobias Rapp <t.rapp at noa-audio.com>
Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>
(cherry picked from commit 474665346616e446ecd1407002fdf5f88201bf72)
Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=c6c801d993bb18e8cc67b43a1aa94e28ee4d3cd9
---
libavutil/file_open.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/libavutil/file_open.c b/libavutil/file_open.c
index 3f9a67c..9e76127 100644
--- a/libavutil/file_open.c
+++ b/libavutil/file_open.c
@@ -77,6 +77,9 @@ int avpriv_open(const char *filename, int flags, ...)
#ifdef O_CLOEXEC
flags |= O_CLOEXEC;
#endif
+#ifdef O_NOINHERIT
+ flags |= O_NOINHERIT;
+#endif
fd = open(filename, flags, mode);
#if HAVE_FCNTL
More information about the ffmpeg-cvslog
mailing list