]> git.sesse.net Git - vlc/commitdiff
Fix a memleak in item categories.
authorRémi Duraffort <ivoire@videolan.org>
Tue, 9 Dec 2008 17:07:00 +0000 (18:07 +0100)
committerRémi Duraffort <ivoire@videolan.org>
Tue, 9 Dec 2008 17:07:57 +0000 (18:07 +0100)
src/input/item.c

index 7d8d3bce045d53b6368e7cc3aaef325aa87da81a..58b9e72b5e7775723a1c991eece306e486ce5c2f 100644 (file)
@@ -575,8 +575,7 @@ int input_item_DelInfo( input_item_t *p_i,
             if( !strcmp( p_cat->pp_infos[i]->psz_name, psz_name ) )
             {
                 free( p_cat->pp_infos[i]->psz_name );
-                if( p_cat->pp_infos[i]->psz_value )
-                    free( p_cat->pp_infos[i]->psz_value );
+                free( p_cat->pp_infos[i]->psz_value );
                 free( p_cat->pp_infos[i] );
                 REMOVE_ELEM( p_cat->pp_infos, p_cat->i_infos, i );
                 break;
@@ -594,14 +593,16 @@ int input_item_DelInfo( input_item_t *p_i,
         for( i = 0; i < p_cat->i_infos; i++ )
         {
             free( p_cat->pp_infos[i]->psz_name );
-            if( p_cat->pp_infos[i]->psz_value )
-                free( p_cat->pp_infos[i]->psz_value );
+            free( p_cat->pp_infos[i]->psz_value );
             free( p_cat->pp_infos[i] );
         }
-        if( p_cat->pp_infos )
-            free( p_cat->pp_infos );
+        free( p_cat->pp_infos );
         REMOVE_ELEM( p_i->pp_categories, p_i->i_categories, i_cat );
     }
+
+    // Free the category
+    free( p_cat->psz_name );
+    free( p_cat );
     vlc_mutex_unlock( &p_i->lock );