diff options
author | Sebastian Dröge <sebastian@centricular.com> | 2016-12-01 13:38:16 +0200 |
---|---|---|
committer | Sebastian Dröge <sebastian@centricular.com> | 2016-12-01 13:38:52 +0200 |
commit | 87a2c140ca54c5128093377e9b25a5c24b346727 (patch) | |
tree | 8ae53834a45683d42d4366fa54866429499cdadd | |
parent | d0949baf3dadea6021d54abef6802fed5a06af75 (diff) |
aacparse: Make sure we have enough data in the codec_data to be able to parse it
Also error out cleanly if mapping the buffer failed.
https://bugzilla.gnome.org/show_bug.cgi?id=775450
-rw-r--r-- | gst/audioparsers/gstaacparse.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/gst/audioparsers/gstaacparse.c b/gst/audioparsers/gstaacparse.c index d9dc424e5..bf424b279 100644 --- a/gst/audioparsers/gstaacparse.c +++ b/gst/audioparsers/gstaacparse.c @@ -306,11 +306,12 @@ gst_aac_parse_sink_setcaps (GstBaseParse * parse, GstCaps * caps) if (value) { GstBuffer *buf = gst_value_get_buffer (value); - if (buf) { + if (buf && gst_buffer_get_size (buf) >= 2) { GstMapInfo map; guint sr_idx; - gst_buffer_map (buf, &map, GST_MAP_READ); + if (!gst_buffer_map (buf, &map, GST_MAP_READ)) + return FALSE; sr_idx = ((map.data[0] & 0x07) << 1) | ((map.data[1] & 0x80) >> 7); aacparse->object_type = (map.data[0] & 0xf8) >> 3; |