From 68398ec2cec755651a4d97a134241427670a5f34 Mon Sep 17 00:00:00 2001 From: Derek Foreman Date: Wed, 14 Feb 2018 12:15:11 -0600 Subject: [PATCH] connection: Fix broken log message when demarshalling short closure 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 Reviewed-by: Pekka Paalanen --- src/connection.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/connection.c b/src/connection.c index 5d5711f2..294c521a 100644 --- a/src/connection.c +++ b/src/connection.c @@ -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; }