Stricter validation check when seeking within a buffer

This commit is contained in:
Pierre Pronchery 2011-09-28 10:39:26 +00:00
parent e4097243f7
commit e7723b7e88

View File

@ -737,7 +737,7 @@ static off_t _arch_seek_buffer(Arch * arch, off_t offset, int whence)
}
else if(whence == SEEK_CUR)
{
if(arch->buffer_pos + offset < 0)
if(offset < 0 && -offset > arch->buffer_pos)
return -error_set_code(1, "%s", "Invalid seek");
if(offset > 0 && (size_t)offset + arch->buffer_pos
>= arch->buffer_cnt)