mirror of
https://github.com/mpv-player/mpv
synced 2024-10-30 04:46:41 +01:00
ad_speex: Fix possible memory leaks on error
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32689 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
parent
de8ec24998
commit
d34257b5a3
@ -65,7 +65,7 @@ static int init(sh_audio_t *sh) {
|
||||
const SpeexStereoState st_st = SPEEX_STEREO_STATE_INIT; // hack
|
||||
if (!sh->wf || sh->wf->cbSize < 80) {
|
||||
mp_msg(MSGT_DECAUDIO, MSGL_FATAL, "Missing extradata!\n");
|
||||
return 0;
|
||||
goto err_out;
|
||||
}
|
||||
ctx->hdr = speex_packet_to_header((char *)&sh->wf[1], sh->wf->cbSize);
|
||||
if (!ctx->hdr && sh->wf->cbSize == 0x72 && hdr[0] == 1 && hdr[1] == 0) {
|
||||
@ -87,7 +87,7 @@ static int init(sh_audio_t *sh) {
|
||||
}
|
||||
if (!ctx->hdr) {
|
||||
mp_msg(MSGT_DECAUDIO, MSGL_FATAL, "Invalid extradata!\n");
|
||||
return 0;
|
||||
goto err_out;
|
||||
}
|
||||
if (ctx->hdr->nb_channels != 1 && ctx->hdr->nb_channels != 2) {
|
||||
mp_msg(MSGT_DECAUDIO, MSGL_WARN, "Invalid number of channels (%i), "
|
||||
@ -119,6 +119,12 @@ static int init(sh_audio_t *sh) {
|
||||
sh->sample_format = AF_FORMAT_S16_NE;
|
||||
sh->context = ctx;
|
||||
return 1;
|
||||
|
||||
err_out:
|
||||
if (ctx)
|
||||
free(ctx->hdr);
|
||||
free(ctx);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void uninit(sh_audio_t *sh) {
|
||||
|
Loading…
Reference in New Issue
Block a user