Showing error 1898

User: Jiri Slaby
Error type: Invalid Pointer Dereference
Error type description: A pointer which is invalid is being dereferenced
File location: net/netfilter/nfnetlink_log.c
Line in file: 457
Project: Linux Kernel
Project version: 2.6.28
Tools: Smatch (1.59)
Entered: 2013-09-11 08:47:26 UTC


Source:

427                        NLA_PUT_BE32(inst->skb, NFULA_IFINDEX_PHYSOUTDEV,
428                                     htonl(outdev->ifindex));
429                        /* this is the bridge group "brX" */
430                        NLA_PUT_BE32(inst->skb, NFULA_IFINDEX_OUTDEV,
431                                     htonl(outdev->br_port->br->dev->ifindex));
432                } else {
433                        /* Case 2: indev is a bridge group, we need to look
434                         * for physical device (when called from ipv4) */
435                        NLA_PUT_BE32(inst->skb, NFULA_IFINDEX_OUTDEV,
436                                     htonl(outdev->ifindex));
437                        if (skb->nf_bridge && skb->nf_bridge->physoutdev)
438                                NLA_PUT_BE32(inst->skb, NFULA_IFINDEX_PHYSOUTDEV,
439                                             htonl(skb->nf_bridge->physoutdev->ifindex));
440                }
441#endif
442        }
443
444        if (skb->mark)
445                NLA_PUT_BE32(inst->skb, NFULA_MARK, htonl(skb->mark));
446
447        if (indev && skb->dev) {
448                struct nfulnl_msg_packet_hw phw;
449                int len = dev_parse_header(skb, phw.hw_addr);
450                if (len > 0) {
451                        phw.hw_addrlen = htons(len);
452                        NLA_PUT(inst->skb, NFULA_HWADDR, sizeof(phw), &phw);
453                }
454        }
455
456        if (indev && skb_mac_header_was_set(skb)) {
457                NLA_PUT_BE16(inst->skb, NFULA_HWTYPE, htons(skb->dev->type));
458                NLA_PUT_BE16(inst->skb, NFULA_HWLEN,
459                             htons(skb->dev->hard_header_len));
460                NLA_PUT(inst->skb, NFULA_HWHEADER, skb->dev->hard_header_len,
461                        skb_mac_header(skb));
462        }
463
464        if (skb->tstamp.tv64) {
465                struct nfulnl_msg_packet_timestamp ts;
466                struct timeval tv = ktime_to_timeval(skb->tstamp);
467                ts.sec = cpu_to_be64(tv.tv_sec);
Show full sources