mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-09-03 02:33:53 +00:00
vaapidecoder_h264: plug leak of h264 parsing info
If something goes wrong while parsing, the info object is being leaked https://bugzilla.gnome.org/show_bug.cgi?id=763121
This commit is contained in:
parent
1608eff3e5
commit
2b47bf8c74
1 changed files with 6 additions and 2 deletions
|
@ -4440,7 +4440,7 @@ gst_vaapi_decoder_h264_parse (GstVaapiDecoder * base_decoder,
|
||||||
buf, 0, buf_size, &pi->nalu);
|
buf, 0, buf_size, &pi->nalu);
|
||||||
status = get_status (result);
|
status = get_status (result);
|
||||||
if (status != GST_VAAPI_DECODER_STATUS_SUCCESS)
|
if (status != GST_VAAPI_DECODER_STATUS_SUCCESS)
|
||||||
return status;
|
goto exit;
|
||||||
|
|
||||||
switch (pi->nalu.type) {
|
switch (pi->nalu.type) {
|
||||||
case GST_H264_NAL_SPS:
|
case GST_H264_NAL_SPS:
|
||||||
|
@ -4470,7 +4470,7 @@ gst_vaapi_decoder_h264_parse (GstVaapiDecoder * base_decoder,
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (status != GST_VAAPI_DECODER_STATUS_SUCCESS)
|
if (status != GST_VAAPI_DECODER_STATUS_SUCCESS)
|
||||||
return status;
|
goto exit;
|
||||||
|
|
||||||
flags = 0;
|
flags = 0;
|
||||||
if (at_au_end) {
|
if (at_au_end) {
|
||||||
|
@ -4545,6 +4545,10 @@ gst_vaapi_decoder_h264_parse (GstVaapiDecoder * base_decoder,
|
||||||
pi->flags = flags;
|
pi->flags = flags;
|
||||||
gst_vaapi_parser_info_h264_replace (&priv->prev_pi, pi);
|
gst_vaapi_parser_info_h264_replace (&priv->prev_pi, pi);
|
||||||
return GST_VAAPI_DECODER_STATUS_SUCCESS;
|
return GST_VAAPI_DECODER_STATUS_SUCCESS;
|
||||||
|
|
||||||
|
exit:
|
||||||
|
gst_vaapi_parser_info_h264_unref (pi);
|
||||||
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
static GstVaapiDecoderStatus
|
static GstVaapiDecoderStatus
|
||||||
|
|
Loading…
Reference in a new issue