Showing error 1652

User: Jiri Slaby
Error type: Invalid Pointer Dereference
Error type description: A pointer which is invalid is being dereferenced
File location: fs/afs/server.c
Line in file: 96
Project: Linux Kernel
Project version: 2.6.28
Tools: Smatch (1.59)
Entered: 2013-09-10 07:54:05 UTC


Source:

 66/*
 67 * allocate a new server record
 68 */
 69static struct afs_server *afs_alloc_server(struct afs_cell *cell,
 70                                           const struct in_addr *addr)
 71{
 72        struct afs_server *server;
 73
 74        _enter("");
 75
 76        server = kzalloc(sizeof(struct afs_server), GFP_KERNEL);
 77        if (server) {
 78                atomic_set(&server->usage, 1);
 79                server->cell = cell;
 80
 81                INIT_LIST_HEAD(&server->link);
 82                INIT_LIST_HEAD(&server->grave);
 83                init_rwsem(&server->sem);
 84                spin_lock_init(&server->fs_lock);
 85                server->fs_vnodes = RB_ROOT;
 86                server->cb_promises = RB_ROOT;
 87                spin_lock_init(&server->cb_lock);
 88                init_waitqueue_head(&server->cb_break_waitq);
 89                INIT_DELAYED_WORK(&server->cb_break_work,
 90                                  afs_dispatch_give_up_callbacks);
 91
 92                memcpy(&server->addr, addr, sizeof(struct in_addr));
 93                server->addr.s_addr = addr->s_addr;
 94        }
 95
 96        _leave(" = %p{%d}", server, atomic_read(&server->usage));
 97        return server;
 98}
 99
100/*
101 * get an FS-server record for a cell
102 */
103struct afs_server *afs_lookup_server(struct afs_cell *cell,
104                                     const struct in_addr *addr)
105{
106        struct afs_server *server, *candidate;
Show full sources