]> err.no Git - varnish/commitdiff
Be more paranoid about srcaddr
authorphk <phk@d4fa192b-c00b-0410-8231-f00ffab90ce4>
Thu, 20 Jul 2006 13:39:47 +0000 (13:39 +0000)
committerphk <phk@d4fa192b-c00b-0410-8231-f00ffab90ce4>
Thu, 20 Jul 2006 13:39:47 +0000 (13:39 +0000)
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@525 d4fa192b-c00b-0410-8231-f00ffab90ce4

varnish-cache/bin/varnishd/cache_session.c

index c451b457508a00607630aa3550e2ebb2abbe8aff..0010a2b318910ffe4673403ef8cb3f673dfa7c20 100644 (file)
@@ -63,6 +63,7 @@ SES_RefSrcAddr(struct sess *sp)
        struct srcaddrhead *ch;
        time_t now;
 
+       assert(sp->srcaddr == NULL);
        for (u = 0, p = sp->addr; *p; p++)
                u += u + *p;
        v = u % CLIENT_HASH;
@@ -105,6 +106,7 @@ SES_RefSrcAddr(struct sess *sp)
                        VSL_stats->n_srcaddr++;
        } else
                TAILQ_REMOVE(ch, c3, list);
+       assert (c3 != NULL);
        if (c3 != NULL) {
                memset(c3, 0, sizeof *c3);
                strcpy(c3->addr, sp->addr);
@@ -115,8 +117,8 @@ SES_RefSrcAddr(struct sess *sp)
                c3->sah = ch;
                VSL_stats->n_srcaddr_act++;
                TAILQ_INSERT_TAIL(ch, c3, list);
+               sp->srcaddr = c3;
        }
-       sp->srcaddr = c3;
        AZ(pthread_mutex_unlock(&ses_mtx));
 }