summaryrefslogtreecommitdiffstats
path: root/gst/flv
diff options
context:
space:
mode:
authorTim-Philipp Müller <tim@centricular.net>2008-04-11 23:19:21 +0000
committerSebastian Dröge <sebastian.droege@collabora.co.uk>2009-05-12 21:20:53 +0200
commit7104ffa7dca0a977fd00f1d8631399e649e3477f (patch)
tree6bbbbf3d8a14dc99e798d4fef4a91c587c50a9f7 /gst/flv
parent71e48aa5d7a5b0ec98da379d48dc6543ae672146 (diff)
[MOVED FROM BAD 19/57] gst/flv/gstflvparse.c: Handle NULL returns from FLV_GET_STRING() more gracefully. Fixes crash caused by a strlen on a...
Original commit message from CVS: * gst/flv/gstflvparse.c: (gst_flv_parse_metadata_item), (gst_flv_parse_tag_script): Handle NULL returns from FLV_GET_STRING() more gracefully. Fixes crash caused by a strlen on a NULL string (#527622).
Diffstat (limited to 'gst/flv')
-rw-r--r--gst/flv/gstflvparse.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/gst/flv/gstflvparse.c b/gst/flv/gstflvparse.c
index a29e873b..3a0e97b7 100644
--- a/gst/flv/gstflvparse.c
+++ b/gst/flv/gstflvparse.c
@@ -178,6 +178,9 @@ gst_flv_parse_metadata_item (GstFLVDemux * demux, const guint8 * data,
value = FLV_GET_STRING (data + offset, data_size - offset);
+ if (value == NULL)
+ break;
+
offset += strlen (value) + 2;
GST_DEBUG_OBJECT (demux, "%s => (string) %s", tag_name, value);
@@ -329,12 +332,14 @@ gst_flv_parse_tag_script (GstFLVDemux * demux, const guint8 * data,
GST_LOG_OBJECT (demux, "parsing a script tag");
if (GST_READ_UINT8 (data + offset++) == 2) {
+ gchar *function_name;
guint i;
- gchar *function_name = FLV_GET_STRING (data + offset, data_size - offset);
- GST_LOG_OBJECT (demux, "function name is %s", function_name);
+ function_name = FLV_GET_STRING (data + offset, data_size - offset);
+
+ GST_LOG_OBJECT (demux, "function name is %s", GST_STR_NULL (function_name));
- if (!strcmp (function_name, "onMetaData")) {
+ if (function_name != NULL && strcmp (function_name, "onMetaData") == 0) {
guint32 nb_elems = 0;
gboolean end_marker = FALSE;