diff --git a/libavcodec/libvo-aacenc.c b/libavcodec/libvo-aacenc.c
index 7b38d518a242cb29cef2479281642af98971a37d..2c4a424252e0412b45af524af90deecfbeb99268 100644
--- a/libavcodec/libvo-aacenc.c
+++ b/libavcodec/libvo-aacenc.c
@@ -65,7 +65,7 @@ static av_cold int aac_encode_init(AVCodecContext *avctx)
     s->last_frame     = 2;
     ff_af_queue_init(avctx, &s->afq);
 
-    s->end_buffer = av_mallocz(avctx->frame_size * avctx->channels * 2);
+    s->end_buffer = av_mallocz_array(avctx->channels, avctx->frame_size * 2);
     if (!s->end_buffer) {
         ret = AVERROR(ENOMEM);
         goto error;