diff options
author | Sebastian Dröge <sebastian@centricular.com> | 2019-10-22 09:30:34 +0300 |
---|---|---|
committer | Tim-Philipp Müller <tim@centricular.com> | 2019-10-24 13:01:50 +0100 |
commit | 70e44a459809488df59f65b861dab712e446262c (patch) | |
tree | 43c6c962681946920dedafc7da24d5a11291805c | |
parent | 7324f427bb79c67b56d3ba1eac36dfc0fa547ebb (diff) | |
download | gstreamer-plugins-bad-70e44a459809488df59f65b861dab712e446262c.tar.gz |
pnmdec: Return early on ::finish() if we have no actual data to parse
Otherwise we'd be working with a NULL buffer and cause various critical
warnings along the way.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/1104
-rw-r--r-- | gst/pnm/gstpnmdec.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/gst/pnm/gstpnmdec.c b/gst/pnm/gstpnmdec.c index 5b624bed4..cf6904e01 100644 --- a/gst/pnm/gstpnmdec.c +++ b/gst/pnm/gstpnmdec.c @@ -244,6 +244,9 @@ gst_pnmdec_parse_ascii (GstPnmdec * s, const guint8 * b, guint bs) GstMapInfo map; guint8 *outdata; + if (!s->buf) + return GST_FLOW_OK; + target = s->size - s->current_size; gst_buffer_map (s->buf, &map, GST_MAP_WRITE); @@ -571,7 +574,7 @@ gst_pnmdec_finish (GstVideoDecoder * decoder) if (s->mngr.info.encoding == GST_PNM_ENCODING_ASCII) { /* One last go at outputting any final value */ gst_pnmdec_parse_ascii (s, 0, 0); - if (s->size <= s->current_size) { + if (s->size && s->size <= s->current_size) { return gst_video_decoder_have_frame (decoder); } } |