diff --git a/audio/audio.c b/audio/audio.c
index 950d25be75..e8ff96ddc3 100644
--- a/audio/audio.c
+++ b/audio/audio.c
@@ -15,6 +15,9 @@
* with mpv. If not, see .
*/
+#include
+#include
+#include
#include
#include
@@ -145,6 +148,8 @@ static void mp_audio_destructor(void *ptr)
void mp_audio_realloc(struct mp_audio *mpa, int samples)
{
assert(samples >= 0);
+ if (samples >= INT_MAX / mpa->sstride)
+ abort(); // oom
int size = MPMAX(samples * mpa->sstride, 1);
for (int n = 0; n < mpa->num_planes; n++) {
if (size != mpa->allocated[n]) {