Do proper bounds checking in formats (bug #1356)
[asterisk/asterisk.git] / formats / format_wav.c
index dbca8ed..52f1508 100755 (executable)
@@ -525,8 +525,9 @@ static int wav_seek(struct ast_filestream *fs, long sample_offset, int whence)
                offset = max - samples;
         if (whence != SEEK_FORCECUR) {
                offset = (offset > max)?max:offset;
-               offset = (offset < min)?min:offset;
        }
+       // always protect the header space.
+       offset = (offset < min)?min:offset;
        return lseek(fs->fd,offset,SEEK_SET);
 }