* Bob Beck <b...@ualberta.ca> [2009-02-25 08:52]:
> 
> 
> * Max Laier <m...@love2party.net> [2009-02-25 06:43]:
> > Hello Artis,
> > 
> > looks like a valid catch to me.  I'm CC'ing the upstream maintainer (Bob, 
> > that's you, right?)  From a quick glance there is also a minor leak in 
> > readsuffixlists in the goto bad case.
> 
>       Yeah you're right max, in fact there are three possibilities for 
> a slow leak.. try this:
> 

actually, try this - dropped a ! in the earlier one. sorry :)

        -Bob

Index: grey.c
===================================================================
RCS file: /cvs/src/libexec/spamd/grey.c,v
retrieving revision 1.45
diff -u grey.c
--- grey.c      7 Dec 2008 21:12:52 -0000       1.45
+++ grey.c      25 Feb 2009 16:33:57 -0000
@@ -315,8 +315,11 @@
        size_t len;
        struct mail_addr *m;
 
-       while (!SLIST_EMPTY(&match_suffix))
+       while (!SLIST_EMPTY(&match_suffix)) {
+               m = SLIST_FIRST(&match_suffix);   
                SLIST_REMOVE_HEAD(&match_suffix, entry);
+               free(m);
+       }
        if ((fp = fopen(alloweddomains_file, "r")) != NULL) {
                while ((buf = fgetln(fp, &len))) {
                        if (buf[len-1] == '\n')
@@ -337,8 +340,11 @@
        }
        return;
 bad:
-       while (!SLIST_EMPTY(&match_suffix))
+       while (!SLIST_EMPTY(&match_suffix)) {
+               m = SLIST_FIRST(&match_suffix);
                SLIST_REMOVE_HEAD(&match_suffix, entry);
+               free(m);
+       }
 }
 
 void
@@ -512,6 +518,7 @@
                dbc->act = 0;
                dbc->dsiz = 0;
                SLIST_REMOVE_HEAD(&db_changes, entry);
+               free(dbc);
 
        }
        return(ret);
@@ -737,8 +744,8 @@
                if (r)
                        goto bad;
                if (debug)
_______________________________________________
freebsd-pf@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-pf
To unsubscribe, send any mail to "freebsd-pf-unsubscr...@freebsd.org"

Reply via email to