decoder: h264: initialize PPS's slice_group_id
authorVíctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
Fri, 11 Sep 2015 14:49:16 +0000 (16:49 +0200)
committerVíctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
Tue, 15 Sep 2015 17:36:37 +0000 (19:36 +0200)
When the GstVaapiParserInfoH264 is allocated, the memory is not initialized,
so it contains random data.

When gst_h264_parser_parse_pps() fails, the PPS structure keeps slice_group_id
pointer uninitialized, leading to a segmentation fault when the memory is
freed.

This patch prevents this by initializing the slice_group_id before the PPS
parsing.

Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
https://bugzilla.gnome.org/show_bug.cgi?id=754845

gst-libs/gst/vaapi/gstvaapidecoder_h264.c

index 3947a44..55cb396 100644 (file)
@@ -1713,6 +1713,7 @@ parse_pps(GstVaapiDecoderH264 *decoder, GstVaapiDecoderUnit *unit)
        standard but that should get a default value anyway */
     pps->slice_group_map_type = 0;
     pps->slice_group_change_rate_minus1 = 0;
+    pps->slice_group_id = NULL;
 
     result = gst_h264_parser_parse_pps(priv->parser, &pi->nalu, pps);
     if (result != GST_H264_PARSER_OK)