From b25e76f52b6d08b1c0a739d3a35445c9ed3e219b Mon Sep 17 00:00:00 2001 From: Jean-Paul Saman Date: Fri, 26 Oct 2007 15:08:03 +0000 Subject: [PATCH] Fix potential memleaks in src/input/vlm.c --- src/input/vlm.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/input/vlm.c b/src/input/vlm.c index 52af065bee..b64a9df215 100644 --- a/src/input/vlm.c +++ b/src/input/vlm.c @@ -1849,6 +1849,7 @@ static char *Save( vlm_t *vlm ) /* now we have the length of save */ p = save = malloc( i_length ); + if( !save ) return NULL; *save = '\0'; p += sprintf( p, "%s", psz_header ); @@ -2341,6 +2342,7 @@ static int vlm_ControlMediaChange( vlm_t *p_vlm, vlm_media_t *p_cfg ) return vlm_OnMediaUpdate( p_vlm, p_media ); } + static int vlm_ControlMediaAdd( vlm_t *p_vlm, vlm_media_t *p_cfg, int64_t *p_id ) { vlm_media_sys_t *p_media; @@ -2368,12 +2370,18 @@ static int vlm_ControlMediaAdd( vlm_t *p_vlm, vlm_media_t *p_cfg, int64_t *p_id p_vlm->p_vod->p_data = p_vlm; p_vlm->p_vod->pf_media_control = vlm_MediaVodControl; } - if( p_cfg->b_vod ) - p_vlm->i_vod++; p_media = malloc( sizeof( vlm_media_sys_t ) ); + if( !p_media ) + { + msg_Err( p_vlm, "out of memory" ); + return VLC_ENOMEM; + } memset( p_media, 0, sizeof(vlm_media_sys_t) ); + if( p_cfg->b_vod ) + p_vlm->i_vod++; + vlm_media_Copy( &p_media->cfg, p_cfg ); p_media->cfg.id = p_vlm->i_id++; /* FIXME do we do something here if enabled is true ? */ -- 2.39.2