OSDN Git Service

avformat/fifo: assert on disallowed message type and state combinations
authorMarton Balint <cus@passwd.hu>
Wed, 8 Feb 2017 22:28:21 +0000 (23:28 +0100)
committerMarton Balint <cus@passwd.hu>
Sun, 19 Feb 2017 15:41:43 +0000 (16:41 +0100)
Fixes Coverity CID 1396277.

Signed-off-by: Marton Balint <cus@passwd.hu>
libavformat/fifo.c

index 8f525e5..2cbe5c5 100644 (file)
@@ -19,6 +19,7 @@
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "libavutil/avassert.h"
 #include "libavutil/opt.h"
 #include "libavutil/time.h"
 #include "libavutil/thread.h"
@@ -207,7 +208,7 @@ static int fifo_thread_write_trailer(FifoThreadContext *ctx)
 
 static int fifo_thread_dispatch_message(FifoThreadContext *ctx, FifoMessage *msg)
 {
-    int ret;
+    int ret = AVERROR(EINVAL);
 
     if (!ctx->header_written) {
         ret = fifo_thread_write_header(ctx);
@@ -217,6 +218,7 @@ static int fifo_thread_dispatch_message(FifoThreadContext *ctx, FifoMessage *msg
 
     switch(msg->type) {
     case FIFO_WRITE_HEADER:
+        av_assert0(ret >= 0);
         return ret;
     case FIFO_WRITE_PACKET:
         return fifo_thread_write_packet(ctx, &msg->pkt);
@@ -224,6 +226,7 @@ static int fifo_thread_dispatch_message(FifoThreadContext *ctx, FifoMessage *msg
         return fifo_thread_flush_output(ctx);
     }
 
+    av_assert0(0);
     return AVERROR(EINVAL);
 }