[vlc-devel] [PATCH 2/5] se/archive: do not reset source position if dead

Filip Roséen filip at atch.se
Fri Mar 17 03:22:12 CET 2017


If the libarchive_exit_cb is called due to clean-up (because we are
dead), there is no point in seeking back to zero. It might even fail
if our source module reacts to vlc_killed (such as
stream_filter/cache_read).
---
 modules/stream_extractor/archive.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/modules/stream_extractor/archive.c b/modules/stream_extractor/archive.c
index bc401ce3d8..bb553bb034 100644
--- a/modules/stream_extractor/archive.c
+++ b/modules/stream_extractor/archive.c
@@ -99,9 +99,8 @@ static int libarchive_exit_cb( libarchive_t* p_arc, void* p_obj )
     libarchive_callback_t* p_cb = (libarchive_callback_t*)p_obj;
 
     if( p_cb->p_sys->source == p_cb->p_source )
-    { /* DO NOT CLOSE OUR MOTHER STREAM */
-
-        if( vlc_stream_Seek( p_cb->p_source, 0 ) )
+    {  /* DO NOT CLOSE OUR MOTHER STREAM */
+        if( !p_cb->p_sys->b_dead && vlc_stream_Seek( p_cb->p_source, 0 ) )
             return ARCHIVE_FATAL;
     }
     else if( p_cb->p_source )
-- 
2.12.0


More information about the vlc-devel mailing list