diff options
author | Denis Kirjanov <dkirjanov@hera.kernel.org> | 2010-06-01 17:15:39 +0100 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-06-01 09:26:36 -0700 |
commit | 037776fcbe73236408f6c9ca97c782457efd6b53 (patch) | |
tree | b3822d07bbcf0831be533c5e5704081441eae0bc | |
parent | 5c113fbeed7a5a192d8431a768965f8a45c16475 (diff) | |
download | linux-stable-037776fcbe73236408f6c9ca97c782457efd6b53.tar.gz linux-stable-037776fcbe73236408f6c9ca97c782457efd6b53.tar.bz2 linux-stable-037776fcbe73236408f6c9ca97c782457efd6b53.zip |
AFS: Fix possible null pointer dereference in afs_alloc_server()
Fix a possible null pointer dereference in afs_alloc_server(): the server
pointer is NULL if there was an allocation failure, and under such a
condition, we can't dereference it in the _leave() statement.
Signed-off-by: Denis Kirjanov <dkirjanov@kernel.org>
Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r-- | fs/afs/server.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/fs/afs/server.c b/fs/afs/server.c index f49099516675..9fdc7fe3a7bc 100644 --- a/fs/afs/server.c +++ b/fs/afs/server.c @@ -91,9 +91,10 @@ static struct afs_server *afs_alloc_server(struct afs_cell *cell, memcpy(&server->addr, addr, sizeof(struct in_addr)); server->addr.s_addr = addr->s_addr; + _leave(" = %p{%d}", server, atomic_read(&server->usage)); + } else { + _leave(" = NULL [nomem]"); } - - _leave(" = %p{%d}", server, atomic_read(&server->usage)); return server; } |