libextractor

GNU libextractor
Log | Files | Refs | Submodules | README | LICENSE

commit ac25c5ff4f4ae5b0a99703dd3096ca2ac58a9c7c
parent a58cec94dc5e6158f8f1f72a122541f35056cef8
Author: Christian Grothoff <christian@grothoff.org>
Date:   Mon, 21 Jul 2008 22:19:04 +0000

towards fixing 1391

Diffstat:
Msrc/plugins/oo/ooextractor.c | 11++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/src/plugins/oo/ooextractor.c b/src/plugins/oo/ooextractor.c @@ -1461,15 +1461,20 @@ static long Eseek_file_func(voidpf opaque, switch (origin) { case ZLIB_FILEFUNC_SEEK_SET: - e->pos = offset; + if ( (offset > e->size) || + (offset < 0) ) + return -1; + e->pos = offset; break; case ZLIB_FILEFUNC_SEEK_END: - if (offset > e->size) + if ( (offset > e->size) || + (offset < 0) ) return -1; e->pos = e->size - offset; break; case ZLIB_FILEFUNC_SEEK_CUR: - if (offset < - e->pos) + if ( (offset < - e->pos) || + (offset > e->size - e->pos) ) return -1; e->pos += offset; break;