]> err.no Git - varnish/commitdiff
My workaround for the missing OFF_T_MAX definition was not safe,
authorphk <phk@d4fa192b-c00b-0410-8231-f00ffab90ce4>
Mon, 3 Jul 2006 19:45:12 +0000 (19:45 +0000)
committerphk <phk@d4fa192b-c00b-0410-8231-f00ffab90ce4>
Mon, 3 Jul 2006 19:45:12 +0000 (19:45 +0000)
use a hardcoded "1<<30" which is.

git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@289 d4fa192b-c00b-0410-8231-f00ffab90ce4

varnish-cache/bin/varnishd/storage_file.c

index 9fc78f4dbb2bcd500c11277f0a0b41806003fd54..c7213a49d7f163ef95ba8f48e2890674c6f07019 100644 (file)
@@ -419,10 +419,12 @@ smf_open_chunk(struct smf_sc *sc, off_t sz, off_t off, off_t *fail, off_t *sum)
        void *p;
        off_t h;
 
-       if (*fail < sc->pagesize * MINPAGES)
+       assert(sz != 0);
+
+       if (*fail < (uintmax_t)sc->pagesize * MINPAGES)
                return;
 
-       if (sz < *fail && sz < SIZE_T_MAX) {
+       if (sz > 0 && sz < *fail && sz < SIZE_T_MAX) {
                p = mmap(NULL, sz, PROT_READ|PROT_WRITE,
                    MAP_NOCORE | MAP_NOSYNC | MAP_SHARED, sc->fd, off);
                if (p != MAP_FAILED) {
@@ -448,7 +450,7 @@ static void
 smf_open(struct stevedore *st)
 {
        struct smf_sc *sc;
-       off_t fail = SIZE_T_MAX;
+       off_t fail = 1 << 30;   /* XXX: where is OFF_T_MAX ? */
        off_t sum = 0;
 
        sc = st->priv;