diff --git a/libavformat/asfdec.c b/libavformat/asfdec.c
index 233b6cae7951648debdfb91dd7b757b76cfe4f5d..38f46a64740c7ff08952dbd977cb4a1a494b3734 100644
--- a/libavformat/asfdec.c
+++ b/libavformat/asfdec.c
@@ -1011,6 +1011,7 @@ static int asf_read_frame_header(AVFormatContext *s, AVIOContext *pb)
         asf->packet_obj_size = avio_rl32(pb);
         if (asf->packet_obj_size >= (1 << 24) || asf->packet_obj_size <= 0) {
             av_log(s, AV_LOG_ERROR, "packet_obj_size invalid\n");
+            asf->packet_obj_size = 0;
             return AVERROR_INVALIDDATA;
         }
         asf->packet_frag_timestamp = avio_rl32(pb); // timestamp