From e7723b7e88f40966365761f73d5cf3719d4bd9c9 Mon Sep 17 00:00:00 2001 From: Pierre Pronchery Date: Wed, 28 Sep 2011 10:39:26 +0000 Subject: [PATCH] Stricter validation check when seeking within a buffer --- src/arch.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/arch.c b/src/arch.c index c71852d..7e7a9e0 100644 --- a/src/arch.c +++ b/src/arch.c @@ -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)