From: RĂ©mi Duraffort Date: Fri, 1 Aug 2008 09:31:47 +0000 (+0200) Subject: lua/intf: Fix a memleak. X-Git-Tag: 0.9.0-test3~67 X-Git-Url: https://git.sesse.net/?p=vlc;a=commitdiff_plain;h=0d8adc76dbf01e54ef043a07a623982a7fa9a426 lua/intf: Fix a memleak. --- diff --git a/modules/misc/lua/intf.c b/modules/misc/lua/intf.c index 2b0b38651b..76bbcdfcf4 100644 --- a/modules/misc/lua/intf.c +++ b/modules/misc/lua/intf.c @@ -125,7 +125,7 @@ static bool WordInList( const char *psz_list, const char *psz_word ) return false; } -static const char *GetModuleName( intf_thread_t *p_intf ) +static char *GetModuleName( intf_thread_t *p_intf ) { int i; const char *psz_intf; @@ -136,7 +136,7 @@ static const char *GetModuleName( intf_thread_t *p_intf ) for( i = 0; pp_shortcuts[i].psz_name; i++ ) { if( WordInList( psz_intf, pp_shortcuts[i].psz_shortcut ) ) - return pp_shortcuts[i].psz_name; + return strdup( pp_shortcuts[i].psz_name ); } return config_GetPsz( p_intf, "lua-intf" ); @@ -150,14 +150,15 @@ int Open_LuaIntf( vlc_object_t *p_this ) intf_sys_t *p_sys; lua_State *L; - const char *psz_name = GetModuleName( p_intf ); + char *psz_name = GetModuleName( p_intf ); const char *psz_config; bool b_config_set = false; - if( !psz_name ) psz_name = "dummy"; + if( !psz_name ) psz_name = strdup( "dummy" ); p_intf->p_sys = (intf_sys_t*)malloc( sizeof(intf_sys_t*) ); if( !p_intf->p_sys ) { + free( psz_name ); return VLC_ENOMEM; } p_sys = p_intf->p_sys; @@ -166,6 +167,7 @@ int Open_LuaIntf( vlc_object_t *p_this ) { msg_Err( p_intf, "Couldn't find lua interface script \"%s\".", psz_name ); + free( psz_name ); free( p_sys ); return VLC_EGENERIC; } @@ -175,6 +177,7 @@ int Open_LuaIntf( vlc_object_t *p_this ) if( !L ) { msg_Err( p_intf, "Could not create new Lua State" ); + free( psz_name ); free( p_sys ); return VLC_EGENERIC; } @@ -261,6 +264,7 @@ int Open_LuaIntf( vlc_object_t *p_this ) p_intf->pf_run = Run; p_intf->psz_header = strdup( psz_name ); /* Do I need to clean that up myself in Close_LuaIntf? */ + free( psz_name ); return VLC_SUCCESS; }