Showing error 1471

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


Source:

2112        write_lock(&proto_list_lock);
2113        release_proto_idx(prot);
2114        list_del(&prot->node);
2115        write_unlock(&proto_list_lock);
2116
2117        if (prot->slab != NULL) {
2118                kmem_cache_destroy(prot->slab);
2119                prot->slab = NULL;
2120        }
2121
2122        if (prot->rsk_prot != NULL && prot->rsk_prot->slab != NULL) {
2123                kmem_cache_destroy(prot->rsk_prot->slab);
2124                kfree(prot->rsk_prot->slab_name);
2125                prot->rsk_prot->slab = NULL;
2126        }
2127
2128        if (prot->twsk_prot != NULL && prot->twsk_prot->twsk_slab != NULL) {
2129                kmem_cache_destroy(prot->twsk_prot->twsk_slab);
2130                kfree(prot->twsk_prot->twsk_slab_name);
2131                prot->twsk_prot->twsk_slab = NULL;
2132        }
2133}
2134
2135EXPORT_SYMBOL(proto_unregister);
2136
2137#ifdef CONFIG_PROC_FS
2138static void *proto_seq_start(struct seq_file *seq, loff_t *pos)
2139        __acquires(proto_list_lock)
2140{
2141        read_lock(&proto_list_lock);
2142        return seq_list_start_head(&proto_list, *pos);
2143}
2144
2145static void *proto_seq_next(struct seq_file *seq, void *v, loff_t *pos)
2146{
2147        return seq_list_next(v, &proto_list, pos);
2148}
2149
2150static void proto_seq_stop(struct seq_file *seq, void *v)
2151        __releases(proto_list_lock)
2152{
Show full sources