diff --git a/libavformat/cutils.c b/libavformat/cutils.c
index 8580106717ef294a1ba5b5c4ab43278ac8b3f13d..eeeef51464afbbe74e8f168b25400fc93d40111a 100644
--- a/libavformat/cutils.c
+++ b/libavformat/cutils.c
@@ -44,23 +44,15 @@ int strstart(const char *str, const char *pfx, const char **ptr)
  * prefix.
  *
  * @param str input string
- * @param val prefix to test
+ * @param pfx prefix to test
  * @param ptr updated after the prefix in str in there is a match
  * @return TRUE if there is a match */
-int stristart(const char *str, const char *val, const char **ptr)
+int stristart(const char *str, const char *pfx, const char **ptr)
 {
-    const char *p, *q;
-    p = str;
-    q = val;
-    while (*q != '\0') {
-        if (toupper(*(const unsigned char *)p) != toupper(*(const unsigned char *)q))
-            return 0;
-        p++;
-        q++;
-    }
-    if (ptr)
-        *ptr = p;
-    return 1;
+    while (*pfx && toupper((unsigned)*pfx++) == toupper((unsigned)*str++));
+    if (!*pfx && ptr)
+        *ptr = str;
+    return !*pfx;
 }
 
 /**