Showing error 1525

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_log.c
Line in file: 107
Project: Linux Kernel
Project version: 2.6.28
Tools: Stanse (1.2)
Entered: 2012-05-21 20:30:05 UTC


Source:

 77                   unsigned int hooknum,
 78                   const struct sk_buff *skb,
 79                   const struct net_device *in,
 80                   const struct net_device *out,
 81                   const struct nf_loginfo *loginfo,
 82                   const char *fmt, ...)
 83{
 84        va_list args;
 85        char prefix[NF_LOG_PREFIXLEN];
 86        const struct nf_logger *logger;
 87
 88        rcu_read_lock();
 89        logger = rcu_dereference(nf_loggers[pf]);
 90        if (logger) {
 91                va_start(args, fmt);
 92                vsnprintf(prefix, sizeof(prefix), fmt, args);
 93                va_end(args);
 94                logger->logfn(pf, hooknum, skb, in, out, loginfo, prefix);
 95        }
 96        rcu_read_unlock();
 97}
 98EXPORT_SYMBOL(nf_log_packet);
 99
100#ifdef CONFIG_PROC_FS
101static void *seq_start(struct seq_file *seq, loff_t *pos)
102        __acquires(RCU)
103{
104        rcu_read_lock();
105
106        if (*pos >= ARRAY_SIZE(nf_loggers))
107                return NULL;
108
109        return pos;
110}
111
112static void *seq_next(struct seq_file *s, void *v, loff_t *pos)
113{
114        (*pos)++;
115
116        if (*pos >= ARRAY_SIZE(nf_loggers))
117                return NULL;
Show full sources