mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-06-05 06:58:56 +00:00
wavparse: clean up adtl/note/labl chunk parsing
We were passing the size of the adtl chunk to the note/labl sub-chunk parsing function, which means we may memdup lots of data after the chunk string's NUL terminator that doesn't really belong to it. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/994>
This commit is contained in:
parent
3dd8de1d7c
commit
5353ff355f
1 changed files with 2 additions and 4 deletions
|
@ -836,7 +836,6 @@ gst_wavparse_labl_chunk (GstWavParse * wav, const guint8 * data, guint32 size)
|
||||||
labl = g_new0 (GstWavParseLabl, 1);
|
labl = g_new0 (GstWavParseLabl, 1);
|
||||||
|
|
||||||
/* parse data */
|
/* parse data */
|
||||||
data += 8;
|
|
||||||
labl->cue_point_id = GST_READ_UINT32_LE (data);
|
labl->cue_point_id = GST_READ_UINT32_LE (data);
|
||||||
labl->text = g_memdup (data + 4, size - 4);
|
labl->text = g_memdup (data + 4, size - 4);
|
||||||
|
|
||||||
|
@ -866,7 +865,6 @@ gst_wavparse_note_chunk (GstWavParse * wav, const guint8 * data, guint32 size)
|
||||||
note = g_new0 (GstWavParseNote, 1);
|
note = g_new0 (GstWavParseNote, 1);
|
||||||
|
|
||||||
/* parse data */
|
/* parse data */
|
||||||
data += 8;
|
|
||||||
note->cue_point_id = GST_READ_UINT32_LE (data);
|
note->cue_point_id = GST_READ_UINT32_LE (data);
|
||||||
note->text = g_memdup (data + 4, size - 4);
|
note->text = g_memdup (data + 4, size - 4);
|
||||||
|
|
||||||
|
@ -937,10 +935,10 @@ gst_wavparse_adtl_chunk (GstWavParse * wav, const guint8 * data, guint32 size)
|
||||||
|
|
||||||
switch (ltag) {
|
switch (ltag) {
|
||||||
case GST_RIFF_TAG_labl:
|
case GST_RIFF_TAG_labl:
|
||||||
gst_wavparse_labl_chunk (wav, data + offset, size);
|
gst_wavparse_labl_chunk (wav, data + offset + 8, lsize);
|
||||||
break;
|
break;
|
||||||
case GST_RIFF_TAG_note:
|
case GST_RIFF_TAG_note:
|
||||||
gst_wavparse_note_chunk (wav, data + offset, size);
|
gst_wavparse_note_chunk (wav, data + offset + 8, lsize);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
GST_WARNING_OBJECT (wav, "Unknowm adtl %" GST_FOURCC_FORMAT,
|
GST_WARNING_OBJECT (wav, "Unknowm adtl %" GST_FOURCC_FORMAT,
|
||||||
|
|
Loading…
Reference in a new issue