diff options
author | Denis Kirjanov <dkirjanov@hera.kernel.org> | 2010-06-01 12:15:39 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-06-01 12:26:36 -0400 |
commit | 037776fcbe73236408f6c9ca97c782457efd6b53 (patch) | |
tree | b3822d07bbcf0831be533c5e5704081441eae0bc /fs/afs/server.c | |
parent | 5c113fbeed7a5a192d8431a768965f8a45c16475 (diff) |
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>
Diffstat (limited to 'fs/afs/server.c')
-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, | |||
91 | 91 | ||
92 | memcpy(&server->addr, addr, sizeof(struct in_addr)); | 92 | memcpy(&server->addr, addr, sizeof(struct in_addr)); |
93 | server->addr.s_addr = addr->s_addr; | 93 | server->addr.s_addr = addr->s_addr; |
94 | _leave(" = %p{%d}", server, atomic_read(&server->usage)); | ||
95 | } else { | ||
96 | _leave(" = NULL [nomem]"); | ||
94 | } | 97 | } |
95 | |||
96 | _leave(" = %p{%d}", server, atomic_read(&server->usage)); | ||
97 | return server; | 98 | return server; |
98 | } | 99 | } |
99 | 100 | ||