]> git.sesse.net Git - vlc/commitdiff
LUA: (really) fix infinite loop
authorRémi Denis-Courmont <remi@remlab.net>
Sun, 7 Mar 2010 15:02:44 +0000 (17:02 +0200)
committerRémi Denis-Courmont <remi@remlab.net>
Sun, 7 Mar 2010 15:10:53 +0000 (17:10 +0200)
modules/misc/lua/intf.c

index 23943fea13c6acb9f77b84c34d8d83da2bc884c6..103126f6aaf4dea3da5ca657857153950c6cf939 100644 (file)
@@ -83,15 +83,17 @@ static const struct
 
 static const char *WordInList( const char *psz_list, const char *psz_word )
 {
-    size_t i_len = strlen( psz_word );
-
-    for( const char *s = psz_list; s; s = strchr( s, ',' ) )
+    for( ;; )
     {
-        if( !strncmp( s, psz_word, i_len )
-         && memchr( ",", s[i_len], 2 ) )
-            return s;
+        const char *end = strchr( psz_list, ',' );
+        if( end == NULL )
+            break;
+
+        if( !strncmp( psz_list, psz_word, end - psz_list ) )
+            return psz_list;
+        psz_list = end + 1;
     }
-    return NULL;
+    return strcmp( psz_list, psz_word ) ? psz_list : NULL;
 }
 
 static char *GetModuleName( intf_thread_t *p_intf )