From 5cf39390c0d9a4c9ef2860746126f0bbad3370b6 Mon Sep 17 00:00:00 2001 From: =?utf8?q?R=C3=A9mi=20Duraffort?= Date: Wed, 2 Jul 2008 23:18:06 +0200 Subject: [PATCH] Fix memleaks (corner case). --- modules/misc/rtsp.c | 12 ++++++++++++ modules/stream_out/rtsp.c | 2 ++ 2 files changed, 14 insertions(+) diff --git a/modules/misc/rtsp.c b/modules/misc/rtsp.c index 463af330ec..ae7e27754c 100644 --- a/modules/misc/rtsp.c +++ b/modules/misc/rtsp.c @@ -492,7 +492,10 @@ static int MediaAddES( vod_t *p_vod, vod_media_t *p_media, es_format_t *p_fmt ) /* TODO: update SDP, etc... */ if( asprintf( &psz_urlc, "%s/trackID=%d", p_media->psz_rtsp_path, p_media->i_es ) < 0 ) + { + free( p_es ); return VLC_ENOMEM; + } msg_Dbg( p_vod, " - ES %4.4s (%s)", (char *)&p_fmt->i_codec, psz_urlc ); switch( p_fmt->i_codec ) @@ -583,11 +586,19 @@ static int MediaAddES( vod_t *p_vod, vod_media_t *p_media, es_format_t *p_fmt ) } /* */ if( p_64_sps && p_64_pps ) + { if( asprintf( &p_es->psz_fmtp, "packetization-mode=1;profile-level-id=%s;" "sprop-parameter-sets=%s,%s;", hexa, p_64_sps, p_64_pps ) < 0 ) + { + free( p_64_sps ); + free( p_64_pps ); + free( psz_urlc ); + free( p_es ); return VLC_ENOMEM; + } + } free( p_64_sps ); free( p_64_pps ); } @@ -649,6 +660,7 @@ static int MediaAddES( vod_t *p_vod, vod_media_t *p_media, es_format_t *p_fmt ) default: msg_Err( p_vod, "cannot add this stream (unsupported " "codec: %4.4s)", (char*)&p_fmt->i_codec ); + free( psz_urlc ); free( p_es ); return VLC_EGENERIC; } diff --git a/modules/stream_out/rtsp.c b/modules/stream_out/rtsp.c index 412ef7ca39..30e35526bc 100644 --- a/modules/stream_out/rtsp.c +++ b/modules/stream_out/rtsp.c @@ -138,6 +138,8 @@ void RtspUnsetup( rtsp_stream_t *rtsp ) free( rtsp->psz_path ); vlc_mutex_destroy( &rtsp->lock ); + + free( rtsp ); } -- 2.39.2