greybus: use null pointer for empty payload
authorAlex Elder <elder@linaro.org>
Wed, 3 Dec 2014 18:27:45 +0000 (12:27 -0600)
committerGreg Kroah-Hartman <greg@kroah.com>
Wed, 3 Dec 2014 23:08:17 +0000 (15:08 -0800)
Currently message->payload always points to the address immediately
following the header in a message.  If the payload length is 0, this
is not a valid pointer.

Change the code to assign a null pointer to the payload in this
case.  I have verified that no code dereferences the payload pointer
unless the payload is known to have non-zero size.

Signed-off-by: Alex Elder <elder@linaro.org>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
drivers/staging/greybus/operation.c

index 6a1d3e6..6197167 100644 (file)
@@ -284,7 +284,7 @@ static void gb_operation_message_init(struct greybus_host_device *hd,
        header = (struct gb_operation_msg_hdr *)(buffer + hd->buffer_headroom);
 
        message->header = header;
-       message->payload = header + 1;
+       message->payload = payload_size ? header + 1 : NULL;
        message->payload_size = payload_size;
 
        /*