dash: Fix stripping of space at the beginning/end of durations
authorSebastian Dröge <sebastian@centricular.com>
Sun, 27 Nov 2016 10:20:11 +0000 (12:20 +0200)
committerSebastian Dröge <sebastian@centricular.com>
Sun, 27 Nov 2016 10:41:56 +0000 (12:41 +0200)
The way how strchr() was called here, it could easily read after the end
of the string. Use g_ascii_isspace() instead.

Detected by asan in the unit test.

ext/dash/gstmpdparser.c

index e6d7283dec861f9c3ed8e2c7925704c0db7c9afa..15d6d98894d1439a61e14d70461b7693af6f5bfe 100644 (file)
@@ -985,11 +985,11 @@ gst_mpdparser_parse_duration (const char *str, guint64 * value)
     goto error;
   }
   /* skip leading/trailing whitespace */
-  while (strchr (" \t", str[0])) {
+  while (g_ascii_isspace (str[0])) {
     str++;
     len--;
   }
-  while (len > 0 && strchr (" \t", str[len - 1]))
+  while (len > 0 && g_ascii_isspace (str[len - 1]))
     --len;
 
   /* read "P" for period */