summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEdward Hervey <edward@centricular.com>2017-11-02 15:14:49 +0100
committerEdward Hervey <bilboed@bilboed.com>2017-12-01 10:02:03 +0100
commitb850160084ca30018f3c75fc0d56b21d3f088f00 (patch)
treed69537fa43806fcb154cd32710b523bc5a38bfd4
parentbcce26eb7e5177d494d382cdcc5787d0b3beddd1 (diff)
downloadgstreamer-plugins-base-b850160084ca30018f3c75fc0d56b21d3f088f00.tar.gz
typefind: Fix out-of-bound read in PNM typefinder
-rw-r--r--gst/typefind/gsttypefindfunctions.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/gst/typefind/gsttypefindfunctions.c b/gst/typefind/gsttypefindfunctions.c
index 60e8d066f..76dbb461c 100644
--- a/gst/typefind/gsttypefindfunctions.c
+++ b/gst/typefind/gsttypefindfunctions.c
@@ -4054,15 +4054,24 @@ pnm_type_find (GstTypeFind * tf, gpointer ununsed)
/* need to skip any comment lines first */
data_scan_ctx_advance (tf, &c, 3);
+
+ if (!data_scan_ctx_ensure_data (tf, &c, 1))
+ return;
+
while (c.data[0] == '#') { /* we know there's still data left */
data_scan_ctx_advance (tf, &c, 1);
+ if (!data_scan_ctx_ensure_data (tf, &c, 1))
+ return;
+
while (c.data[0] != '\n' && c.data[0] != '\r') {
- if (!data_scan_ctx_ensure_data (tf, &c, 4))
- return;
data_scan_ctx_advance (tf, &c, 1);
+ if (!data_scan_ctx_ensure_data (tf, &c, 1))
+ return;
}
data_scan_ctx_advance (tf, &c, 1);
GST_LOG ("skipped comment line in PNM header");
+ if (!data_scan_ctx_ensure_data (tf, &c, 1))
+ return;
}
if (!data_scan_ctx_ensure_data (tf, &c, 32) &&