connection: Handle non-nullable strings in wl_connection_demarshal

Currently a null string passed into a non-nullable argument of a message
will decode succesfully, probably resulting in the handler function
crashing. Instead treat it the same way we do non-nullable objects and ids.

Signed-off-by: Fergus Dall <sidereal@google.com>
This commit is contained in:
Fergus Dall 2021-06-22 19:31:26 +10:00
parent 4f53613e70
commit ccc9612e82
2 changed files with 25 additions and 0 deletions

View file

@ -749,6 +749,13 @@ wl_connection_demarshal(struct wl_connection *connection,
case 's':
length = *p++;
if (length == 0 && !arg.nullable) {
wl_log("NULL string received on non-nullable "
"type, message %s(%s)\n", message->name,
message->signature);
errno = EINVAL;
goto err;
}
if (length == 0) {
closure->args[i].s = NULL;
break;