lavu/opt: validate range before dereference
authorLukasz Marek <lukasz.m.luki@gmail.com>
Fri, 4 Apr 2014 17:28:45 +0000 (19:28 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Mon, 23 Jun 2014 13:10:07 +0000 (15:10 +0200)
This change make error handling simplier.
av_opt_freep_ranges may be called when some ranges are NULL,
for example after memory allocation fail.

Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 3aac5fcfa9d3748659d78ab2a66d0ccce22cfd4f)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavutil/opt.c

index a367dbb..85435dd 100644 (file)
@@ -1507,8 +1507,10 @@ void av_opt_freep_ranges(AVOptionRanges **rangesp)
 
     for (i = 0; i < ranges->nb_ranges; i++) {
         AVOptionRange *range = ranges->range[i];
-        av_freep(&range->str);
-        av_freep(&ranges->range[i]);
+        if (range) {
+            av_freep(&range->str);
+            av_freep(&ranges->range[i]);
+        }
     }
     av_freep(&ranges->range);
     av_freep(rangesp);