On Fri, Jul 31, 2015 at 10:57 -0400, RD Thrush wrote:
> >Synopsis:    panic in sys/net/pf_lb.c
> >Category:    kernel
> >Environment:
>       System      : OpenBSD 5.8
>       Details     : OpenBSD 5.8 (GENERIC) #1047: Thu Jul 30 23:24:48 MDT 2015
>                        
> [email protected]:/usr/src/sys/arch/i386/compile/GENERIC
> 
>       Architecture: OpenBSD.i386
>       Machine     : i386
> >Description:
>       Repeatable crash after a few minutes with Jul 28,29 and 30 snapshots.
>       Crashes w/ Jul 30 sp and mp snapshots w/ kern.pool_debug set to 0/1.
>       The ddb transcript containing the following commands is appended:
>               trace
>               ps
>               show registers
>               show malloc
>               show proc
>               show uvmexp
>               callout
>               ps /w
>               ps /a
>               show bcstats
>               show all pools
>               show all pools /a
>               show extents
>               boot sync
>       Please note that usbdevs and pcidump were done w/ the Jun 22 snapshot.
>       acpi doesn't exist on this soekris 5501.
> >How-To-Repeat:
>       Install recent snapshot, sysmerge, reboot and wait a few minutes.
> >Fix:
>       Reboot with Jun 22 sp snapshot.  According to cvs, the panic diagnostic
>       was added Jul 20 to src/sys/net/pf_lb.c.
> 

Can you please try this diff.

diff --git sys/net/pf_lb.c sys/net/pf_lb.c
index 4e8d0cd..2c36b45 100644
--- sys/net/pf_lb.c
+++ sys/net/pf_lb.c
@@ -866,14 +866,13 @@ pf_postprocess_addr(struct pf_state *cur)
        }
 
        /* check for appropriate pool */
+       memset(&rpool, 0, sizeof(rpool));
        if (nr->rdr.addr.type != PF_ADDR_NONE)
                rpool = nr->rdr;
        else if (nr->nat.addr.type != PF_ADDR_NONE)
                rpool = nr->nat;
        else if (nr->route.addr.type != PF_ADDR_NONE)
                rpool = nr->route;
-       else
-               panic("no appropriate pool");
 
        if (((rpool.opts & PF_POOL_TYPEMASK) != PF_POOL_LEASTSTATES))
                return (0);

Reply via email to