diff options
Diffstat (limited to 'modules/mpa/encode.c')
-rw-r--r-- | modules/mpa/encode.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/modules/mpa/encode.c b/modules/mpa/encode.c index 21a34c0..ec0b0a2 100644 --- a/modules/mpa/encode.c +++ b/modules/mpa/encode.c @@ -49,11 +49,15 @@ int mpa_encode_update(struct auenc_state **aesp, const struct aucodec *ac, return EINVAL; aes = *aesp; - if (aes) { - mem_deref(aes); + if (!aes) { + aes = mem_zalloc(sizeof(*aes), destructor); + if (!aes) + return ENOMEM; + } + else + memset(aes,0,sizeof(*aes)); - aes = mem_zalloc(sizeof(*aes), destructor); aes->enc = twolame_init(); if (!aes->enc) { error("MPA enc create failed\n"); |