diff --git a/libavformat/4xm.c b/libavformat/4xm.c
index c792a776ef7327271ee8c1b27d8dcd29705e3914..af57c6c5b610c651465f58003c9f6361ea76cb91 100644
--- a/libavformat/4xm.c
+++ b/libavformat/4xm.c
@@ -114,7 +114,7 @@ static int fourxm_read_header(AVFormatContext *s,
     /* check for LIST-HEAD */
     GET_LIST_HEADER();
     header_size = size - 4;
-    if (fourcc_tag != HEAD_TAG)
+    if (fourcc_tag != HEAD_TAG || size < 4)
         return AVERROR_INVALIDDATA;
 
     /* allocate space for the header and load the whole thing */