connection: Fix broken log message when demarshalling short closure
authorDerek Foreman <derekf@osg.samsung.com>
Wed, 14 Feb 2018 18:15:11 +0000 (12:15 -0600)
committerPekka Paalanen <pekka.paalanen@collabora.co.uk>
Thu, 15 Feb 2018 07:26:08 +0000 (09:26 +0200)
Like the similar wl_log() message further into this function that was
fixed in commit 2fc248dc2c877d02694db40aad52180d71373d5a this should
be printing the sender_id saved earlier instead of *p.

Since p is incremented during the loop it would not only print an
incorrect object id, it could read past the end of the array.

Signed-off-by: Derek Foreman <derekf@osg.samsung.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
src/connection.c

index 5d5711f..294c521 100644 (file)
@@ -710,7 +710,8 @@ wl_connection_demarshal(struct wl_connection *connection,
                if (arg.type != 'h' && p + 1 > end) {
                        wl_log("message too short, "
                               "object (%d), message %s(%s)\n",
-                              *p, message->name, message->signature);
+                              closure->sender_id, message->name,
+                              message->signature);
                        errno = EINVAL;
                        goto err;
                }