flacparse: Fix parsing of ISRC from the cuesheets
authorSebastian Dröge <sebastian.droege@collabora.co.uk>
Tue, 17 Jul 2012 08:01:54 +0000 (10:01 +0200)
committerSebastian Dröge <sebastian.droege@collabora.co.uk>
Tue, 17 Jul 2012 08:01:54 +0000 (10:01 +0200)
gst/audioparsers/gstflacparse.c

index 6a41d96..3bb390f 100644 (file)
@@ -1017,9 +1017,15 @@ gst_flac_parse_handle_cuesheet (GstFlacParse * flacparse, GstBuffer * buffer)
       goto error;
     if (!gst_byte_reader_get_uint8 (&reader, &track_num))
       goto error;
-    if (!gst_byte_reader_skip (&reader, 12))
+
+    if (gst_byte_reader_get_remaining (&reader) < 12)
       goto error;
     memcpy (isrc, map.data + gst_byte_reader_get_pos (&reader), 12);
+    /* \0-terminate the string */
+    isrc[12] = '\0';
+    if (!gst_byte_reader_skip (&reader, 12))
+      goto error;
+
     /* skip 14 bytes from CUESHEET_TRACK */
     if (!gst_byte_reader_skip (&reader, 14))
       goto error;