demux: stl: fix heap-buffer-overflow
authorShaleen Jain <shaleen.jain95@gmail.com>
Tue, 4 Jul 2017 12:48:54 +0000 (18:18 +0530)
committerThomas Guillem <thomas@gllm.fr>
Wed, 5 Jul 2017 07:20:27 +0000 (09:20 +0200)
According to the spec, calloc can return a NULL or a unique pointer value if
either of the arguments are 0 depending on the implementation. Add a guard to
prevent allocation by returning an error in the above case.

Signed-off-by: Thomas Guillem <thomas@gllm.fr>
modules/demux/stl.c

index 9a0d5a1..524f265 100644 (file)
@@ -242,6 +242,8 @@ static int Open(vlc_object_t *object)
     const int cct = ParseInteger(&header[12], 2);
     const mtime_t program_start = ParseTextTimeCode(&header[256], fps);
     const size_t tti_count = ParseInteger(&header[238], 5);
+    if (!tti_count)
+        return VLC_EGENERIC;
     msg_Dbg(demux, "Detected EBU STL : CCT=%d TTI=%zu start=%8.8s %"PRId64, cct, tti_count, &header[256], program_start);
 
     demux_sys_t *sys = malloc(sizeof(*sys));