ffmpeg: Fix deallocating input threads with partly failed file allocation
authorMichael Niedermayer <michael@niedermayer.cc>
Tue, 14 Jul 2015 10:40:04 +0000 (12:40 +0200)
committerMichael Niedermayer <michael@niedermayer.cc>
Tue, 14 Jul 2015 10:42:41 +0000 (12:42 +0200)
Fixes: 18615ff56beedc63a884a8db0678b47c_signal_sigsegv_7ffff713351a_991_xtrem_e2_m64q15_a32sxx.3gp with memlimit of 524288

Found-by: Samuel GroƟ, Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
ffmpeg.c

index b11afc2..cff9dbc 100644 (file)
--- a/ffmpeg.c
+++ b/ffmpeg.c
@@ -3529,7 +3529,7 @@ static void free_input_threads(void)
         InputFile *f = input_files[i];
         AVPacket pkt;
 
         InputFile *f = input_files[i];
         AVPacket pkt;
 
-        if (!f->in_thread_queue)
+        if (!f || !f->in_thread_queue)
             continue;
         av_thread_message_queue_set_err_send(f->in_thread_queue, AVERROR_EOF);
         while (av_thread_message_queue_recv(f->in_thread_queue, &pkt, 0) >= 0)
             continue;
         av_thread_message_queue_set_err_send(f->in_thread_queue, AVERROR_EOF);
         while (av_thread_message_queue_recv(f->in_thread_queue, &pkt, 0) >= 0)