--- ./net/ipv4/netfilter/ipt_ULOG.c.prephysdev 2005-10-19 10:46:52.000000000 +0100 +++ ./net/ipv4/netfilter/ipt_ULOG.c 2005-10-19 11:55:49.000000000 +0100 @@ -244,14 +244,26 @@ } else pm->mac_len = 0; - if (in) - strncpy(pm->indev_name, in->name, sizeof(pm->indev_name)); - else + if (in) { +#ifdef CONFIG_BRIDGE_NETFILTER + if (skb->nf_bridge) + strncpy(pm->indev_name, &(skb->nf_bridge->physindev->name), sizeof(pm->indev_name)); + else if (skb->input_dev) + strncpy(pm->indev_name, &(skb->input_dev.name), sizeof(pm->indev_name)); + else +#endif + strncpy(pm->indev_name, in->name, sizeof(pm->indev_name)); + } else pm->indev_name[0] = '\0'; - if (out) + if (out) { +#ifdef CONFIG_BRIDGE_NETFILTER + if (skb->nf_bridge) + strncpy(pm->outdev_name, &(skb->nf_bridge->physoutdev->name), sizeof(pm->outdev_name)); + else +#endif strncpy(pm->outdev_name, out->name, sizeof(pm->outdev_name)); - else + } else pm->outdev_name[0] = '\0'; /* copy_len <= skb->len, so can't fail. */