mirror of https://github.com/mpv-player/mpv
exit if calloc() fails; free(muxer) before returning NULL if muxer_init() fails (to avoid memleak). Fixes cid 173
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@17832 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
parent
8f872aaeda
commit
5c853c2c21
|
@ -21,30 +21,47 @@
|
|||
muxer_t *muxer_new_muxer(int type,FILE *f){
|
||||
muxer_t* muxer=malloc(sizeof(muxer_t));
|
||||
memset(muxer,0,sizeof(muxer_t));
|
||||
if(!muxer)
|
||||
return NULL;
|
||||
muxer->file = f;
|
||||
switch (type) {
|
||||
case MUXER_TYPE_MPEG:
|
||||
if(! muxer_init_muxer_mpeg(muxer))
|
||||
return NULL;
|
||||
{
|
||||
free(muxer);
|
||||
return NULL;
|
||||
}
|
||||
break;
|
||||
case MUXER_TYPE_RAWVIDEO:
|
||||
if(! muxer_init_muxer_rawvideo(muxer))
|
||||
{
|
||||
free(muxer);
|
||||
return NULL;
|
||||
}
|
||||
break;
|
||||
case MUXER_TYPE_RAWAUDIO:
|
||||
if(! muxer_init_muxer_rawaudio(muxer))
|
||||
{
|
||||
free(muxer);
|
||||
return NULL;
|
||||
}
|
||||
break;
|
||||
#if defined(USE_LIBAVFORMAT) || defined(USE_LIBAVFORMAT_SO)
|
||||
case MUXER_TYPE_LAVF:
|
||||
if(! muxer_init_muxer_lavf(muxer))
|
||||
return NULL;
|
||||
{
|
||||
free(muxer);
|
||||
return NULL;
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
case MUXER_TYPE_AVI:
|
||||
default:
|
||||
if(! muxer_init_muxer_avi(muxer))
|
||||
return NULL;
|
||||
{
|
||||
free(muxer);
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
return muxer;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue