]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
sgi-xpc: Remove NULL pointer dereference.
authorRobin Holt <holt@sgi.com>
Thu, 29 Jan 2009 22:25:07 +0000 (14:25 -0800)
committerGreg Kroah-Hartman <gregkh@suse.de>
Mon, 2 Feb 2009 17:53:26 +0000 (09:53 -0800)
commit 17e2161654da4e6bdfd8d53d4f52e820ee93f423 upstream.

If the bte copy fails, the attempt to retrieve payloads merely returns a
null pointer deref and not NULL as was expected.

Signed-off-by: Robin Holt <holt@sgi.com>
Signed-off-by: Dean Nelson <dcn@sgi.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/misc/sgi-xp/xpc_sn2.c

index d32c1ee5bbc7397daaf191b36bb3b524b8ae6b64..32255d351c2679ef572bcef0a6a5512272193948 100644 (file)
@@ -1961,11 +1961,13 @@ xpc_get_deliverable_payload_sn2(struct xpc_channel *ch)
 
                        msg = xpc_pull_remote_msg_sn2(ch, get);
 
-                       DBUG_ON(msg != NULL && msg->number != get);
-                       DBUG_ON(msg != NULL && (msg->flags & XPC_M_SN2_DONE));
-                       DBUG_ON(msg != NULL && !(msg->flags & XPC_M_SN2_READY));
+                       if (msg != NULL) {
+                               DBUG_ON(msg->number != get);
+                               DBUG_ON(msg->flags & XPC_M_SN2_DONE);
+                               DBUG_ON(!(msg->flags & XPC_M_SN2_READY));
 
-                       payload = &msg->payload;
+                               payload = &msg->payload;
+                       }
                        break;
                }