diff
--- a/libavcodec/dds_dec.c
+++ b/libavcodec/dds_dec.c
@@ -20,7 +20,7 @@
             offset = (v & 0x1FFF) << 2;
             count = ((v >> 13) + 2) << 1;
             if (frame - frame_start < offset || frame_end - frame < count*2 + width)
-                break;
+                return -1;
             for (i = 0; i < count; i++) {
                 frame[0] = frame[1] =
                     bytestream2_get_le16(gb);
@@ -31,7 +31,7 @@
         } else if (bitbuf & (mask << 1)) {
             v = bytestream2_get_le16(gb)*2;
             if (frame - frame_end < v)
-                break;
+                return -1;
             frame += v;
             if (frame_end - frame < width + 3)
                 break;

