diff --git a/libavcodec/wmadec.c b/libavcodec/wmadec.c
index df5089fb3260cbea710023f30e9873ea23bb4b74..cdd285002df3c474b333477e6364f4f5f9e43f87 100644
--- a/libavcodec/wmadec.c
+++ b/libavcodec/wmadec.c
@@ -827,6 +827,10 @@ static int wma_decode_superframe(AVCodecContext *avctx, void *data,
         /* read super frame header */
         skip_bits(&s->gb, 4); /* super frame index */
         nb_frames = get_bits(&s->gb, 4) - (s->last_superframe_len <= 0);
+        if (nb_frames <= 0) {
+            av_log(avctx, AV_LOG_ERROR, "nb_frames is %d\n", nb_frames);
+            return AVERROR_INVALIDDATA;
+        }
     } else {
         nb_frames = 1;
     }