--- a/gst/typefind/gsttypefindfunctions.c 2011-06-14 18:52:17.000000000 +0600 +++ b/gst/typefind/gsttypefindfunctions.c 2012-09-30 20:44:15.755984149 +0600 @@ -4023,6 +4023,7 @@ if (len < 34) /* smallest header of the lot */ return; data = gst_type_find_peek (tf, 0, 4); + if (data == NULL) return; resolution = GST_READ_UINT16_BE (data); if (len == 32034) { /* could be DEGAS */ @@ -4033,6 +4034,7 @@ /* could be DEGAS Elite */ if (resolution <= 2) { data = gst_type_find_peek (tf, len - 16, 8); + if (data == NULL) return; for (n = 0; n < 4; n++) { if (GST_READ_UINT16_BE (data + n * 2) > 2) return; @@ -4045,6 +4047,7 @@ it does have 4 16 bytes values near the end that are 0-2 though. */ if ((resolution & 0x8000) && (resolution & 0x7fff) <= 2) { data = gst_type_find_peek (tf, len - 16, 8); + if (data == NULL) return; for (n = 0; n < 4; n++) { if (GST_READ_UINT16_BE (data + n * 2) > 2) return;