From 3f9cee77afc85efbf1a53329df98b1ac74e1327c Mon Sep 17 00:00:00 2001 From: =?utf8?q?R=C3=A9mi=20Duraffort?= Date: Sun, 2 Mar 2008 13:24:35 +0100 Subject: [PATCH] Check the returned values of malloc. --- src/modules/modules.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/modules/modules.c b/src/modules/modules.c index b505d1ceda..b59d4ce3d9 100644 --- a/src/modules/modules.c +++ b/src/modules/modules.c @@ -819,11 +819,20 @@ char ** __module_GetModulesNamesForCapability( vlc_object_t *p_this, if( psz_module_capability && !strcmp( psz_module_capability, psz_capability ) ) count++; } - /* FIXME: must check the return value and modify the calling functions - to test for a NULL : potential segfault */ + psz_ret = malloc( sizeof(char*) * (count+1) ); if( pppsz_longname ) *pppsz_longname = malloc( sizeof(char*) * (count+1) ); + if( !psz_ret || ( pppsz_longname && *pppsz_longname == NULL ) ) + { + msg_Err( p_this, "out of memory" ); + free( psz_ret ); + free( *pppsz_longname ); + *pppsz_longname = NULL; + vlc_list_release( p_list ); + return NULL; + } + j = 0; for( i = 0 ; i < p_list->i_count; i++) { -- 2.39.2