]> granicus.if.org Git - file/commitdiff
avoid wrap-around.
authorChristos Zoulas <christos@zoulas.com>
Wed, 6 May 2009 14:27:30 +0000 (14:27 +0000)
committerChristos Zoulas <christos@zoulas.com>
Wed, 6 May 2009 14:27:30 +0000 (14:27 +0000)
src/cdf.c

index 467f55779189e7dbabff9ca7dae02fce19c6a348..32b99f3c2b50b95b85cae14baf7aa073b750817b 100644 (file)
--- a/src/cdf.c
+++ b/src/cdf.c
@@ -32,7 +32,7 @@
 #include "file.h"
 
 #ifndef lint
-FILE_RCSID("@(#)$File: cdf.c,v 1.27 2009/05/05 22:48:51 christos Exp $")
+FILE_RCSID("@(#)$File: cdf.c,v 1.28 2009/05/06 14:23:06 christos Exp $")
 #endif
 
 #include <assert.h>
@@ -232,7 +232,7 @@ cdf_check_stream_offset(const cdf_stream_t *sst, const void *p, size_t tail)
 {
        const char *b = (const char *)sst->sst_tab;
        const char *e = ((const char *)p) + tail;
-       if ((size_t)(e - b) < sst->sst_dirlen * sst->sst_len)
+       if (e >= b && (size_t)(e - b) < sst->sst_dirlen * sst->sst_len)
                return 0;
        DPRINTF((stderr, "offset begin %p end %p %zu >= %zu\n", b, e,
            (size_t)(e - b), sst->sst_dirlen * sst->sst_len));