diff --git a/libavformat/wtvdec.c b/libavformat/wtvdec.c
index 9cedae1f8eefe334430ab6f81ffe5bee3f7b3193..ee1ae1ab19c774f8315ffbd48cdb5c95af70684e 100644
--- a/libavformat/wtvdec.c
+++ b/libavformat/wtvdec.c
@@ -974,7 +974,9 @@ static int read_header(AVFormatContext *s)
     avio_skip(s->pb, 4);
     root_sector = avio_rl32(s->pb);
 
-    seek_by_sector(s->pb, root_sector, 0);
+    ret = seek_by_sector(s->pb, root_sector, 0);
+    if (ret < 0)
+        return ret;
     root_size = avio_read(s->pb, root, root_size);
     if (root_size < 0)
         return AVERROR_INVALIDDATA;