summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDenis Kirjanov <dkirjanov@hera.kernel.org>2010-06-01 17:15:39 +0100
committerLinus Torvalds <torvalds@linux-foundation.org>2010-06-01 09:26:36 -0700
commit037776fcbe73236408f6c9ca97c782457efd6b53 (patch)
treeb3822d07bbcf0831be533c5e5704081441eae0bc
parent5c113fbeed7a5a192d8431a768965f8a45c16475 (diff)
downloadlinux-037776fcbe73236408f6c9ca97c782457efd6b53.tar.gz
linux-037776fcbe73236408f6c9ca97c782457efd6b53.tar.bz2
linux-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.c5
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;
}