Showing error 1523

User: Jiri Slaby
Error type: Leaving function in locked state
Error type description: Some lock is not unlocked on all paths of a function, so it is leaked
File location: net/netfilter/nf_conntrack_netlink.c
Line in file: 832
Project: Linux Kernel
Project version: 2.6.28
Tools: Stanse (1.2)
Entered: 2012-05-21 20:30:05 UTC


Source:

 802                goto free;
 803
 804        err = netlink_unicast(ctnl, skb2, NETLINK_CB(skb).pid, MSG_DONTWAIT);
 805        if (err < 0)
 806                goto out;
 807
 808        return 0;
 809
 810free:
 811        kfree_skb(skb2);
 812out:
 813        return err;
 814}
 815
 816#ifdef CONFIG_NF_NAT_NEEDED
 817static int
 818ctnetlink_parse_nat_setup(struct nf_conn *ct,
 819                          enum nf_nat_manip_type manip,
 820                          struct nlattr *attr)
 821{
 822        typeof(nfnetlink_parse_nat_setup_hook) parse_nat_setup;
 823
 824        parse_nat_setup = rcu_dereference(nfnetlink_parse_nat_setup_hook);
 825        if (!parse_nat_setup) {
 826#ifdef CONFIG_MODULES
 827                rcu_read_unlock();
 828                nfnl_unlock();
 829                if (request_module("nf-nat-ipv4") < 0) {
 830                        nfnl_lock();
 831                        rcu_read_lock();
 832                        return -EOPNOTSUPP;
 833                }
 834                nfnl_lock();
 835                rcu_read_lock();
 836                if (nfnetlink_parse_nat_setup_hook)
 837                        return -EAGAIN;
 838#endif
 839                return -EOPNOTSUPP;
 840        }
 841
 842        return parse_nat_setup(ct, manip, attr);
Show full sources