subparse: don't try to index string with -1
authorMatthew Waters <matthew@centricular.com>
Sun, 10 Apr 2022 00:55:02 +0000 (10:55 +1000)
committerMatthew Waters <matthew@centricular.com>
Sun, 10 Apr 2022 00:57:08 +0000 (10:57 +1000)
If the len of the string turns out to be 0, str[len - 1] resolved to
str[-1] which is not a good idea.

Fixes: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=46543
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2147>

subprojects/gst-plugins-base/gst/subparse/gstsubparseelement.c

index 7b40fd5..72af499 100644 (file)
@@ -187,7 +187,7 @@ gst_sub_parse_data_format_autodetect (gchar * match_str)
       if (sscanf (str, "[%u:%02u.%02u]", &n1, &n2, &n3) == 3 ||
           sscanf (str, "[%u:%02u.%03u]", &n1, &n2, &n3) == 3) {
         all_lines_good = TRUE;
-      } else if (str[len - 1] == ']' && strchr (str, ':') != NULL) {
+      } else if (len > 0 && str[len - 1] == ']' && strchr (str, ':') != NULL) {
         all_lines_good = TRUE;
       } else {
         all_lines_good = FALSE;