ffprobe: fix consistency checks in parse_read_intervals()
authorStefano Sabatini <stefasab@gmail.com>
Mon, 21 Oct 2013 11:33:06 +0000 (13:33 +0200)
committerStefano Sabatini <stefasab@gmail.com>
Mon, 21 Oct 2013 11:33:06 +0000 (13:33 +0200)
Move array size assert after the count increment, and avoid strchr() NULL
dereference on p.

Should fix FFmpeg coverity issue #1108581.

ffprobe.c

index b7f287c..80a286b 100644 (file)
--- a/ffprobe.c
+++ b/ffprobe.c
@@ -2460,8 +2460,11 @@ static int parse_read_intervals(const char *intervals_spec)
 
     /* parse intervals */
     p = spec;
-    for (i = 0; i < n; i++) {
-        char *next = strchr(p, ',');
+    for (i = 0; p; i++) {
+        char *next;
+
+        av_assert0(i < read_intervals_nb);
+        next = strchr(p, ',');
         if (next)
             *next++ = 0;
 
@@ -2475,7 +2478,6 @@ static int parse_read_intervals(const char *intervals_spec)
         av_log(NULL, AV_LOG_VERBOSE, "Parsed log interval ");
         log_read_interval(&read_intervals[i], NULL, AV_LOG_VERBOSE);
         p = next;
-        av_assert0(i <= read_intervals_nb);
     }
     av_assert0(i == read_intervals_nb);