diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c
index dfd0f83ab04c8c6112c5c3de3903007387dfc21a..5212dde6bf0ed143e1d757a48aed6ad43ee16c74 100644
--- a/libavformat/rtsp.c
+++ b/libavformat/rtsp.c
@@ -658,7 +658,7 @@ int ff_sdp_parse(AVFormatContext *s, const char *content)
         av_free(s1->default_exclude_source_addrs[i]);
     av_freep(&s1->default_exclude_source_addrs);
 
-    rt->p = av_malloc(sizeof(struct pollfd)*2*(rt->nb_rtsp_streams+1));
+    rt->p = av_malloc_array(rt->nb_rtsp_streams + 1, sizeof(struct pollfd) * 2);
     if (!rt->p) return AVERROR(ENOMEM);
     return 0;
 }