I can't understand why br_handle_frame() starts like this:

void br_handle_frame(struct sk_buff *skb)
{
        struct net_bridge *br;
        unsigned char *dest;
        struct net_bridge_port *p;

        dest = skb->mac.ethernet->h_dest;

        p = skb->dev->br_port;
        if (p == NULL)
                goto err_nolock;

        br = p->br;
        read_lock(&br->lock);
        if (skb->dev->br_port == NULL)
                goto err;

Is there a reason for the last if?  skb->dev->br_port was just
dereferenced two lines earlier; if it was NULL we would have oopsed
already. Or am I missing something?

-- 
Jason Lunz                      Reflex Security
[EMAIL PROTECTED]         http://www.reflexsecurity.com/


_______________________________________________
Bridge mailing list
[EMAIL PROTECTED]
http://www.math.leidenuniv.nl/mailman/listinfo/bridge

Reply via email to