If the client binds to a global with an interface mismatch, it may receive an
event from the server with an unknown opcode. See [1].
Instead of crashing, print a more useful debug message and close the connection.
[1]: https://gitlab.freedesktop.org/wayland/wayland/issues/113
Signed-off-by: Simon Ser <simon.ser@intel.com>
return size;
}
+ if (opcode >= proxy->object.interface->event_count) {
+ wl_log("interface '%s' has no event %u\n",
+ proxy->object.interface->name, opcode);
+ return -1;
+ }
+
message = &proxy->object.interface->events[opcode];
closure = wl_connection_demarshal(display->connection, size,
&display->objects, message);