server: validate resource versions at creation time
authorDerek Foreman <derekf@osg.samsung.com>
Fri, 15 Jan 2016 16:06:48 +0000 (10:06 -0600)
committerBryce Harrington <bryce@osg.samsung.com>
Wed, 17 Feb 2016 06:07:51 +0000 (22:07 -0800)
We shouldn't ever create a resource with version less than 1 or
greater than the interface version.

Reviewed-by: Marek Chalupa <mchqwerty@gmail.com>
Signed-off-by: Derek Foreman <derekf@osg.samsung.com>
src/wayland-server.c

index ae9365f..67cdd0c 100644 (file)
@@ -1390,6 +1390,13 @@ wl_resource_create(struct wl_client *client,
 {
        struct wl_resource *resource;
 
+       if (version < 1 || version > interface->version) {
+               wl_log("wl_resource_create: invalid resource version %d "
+                      "for interface '%s' - must be in range [1, %d]\n",
+                      version, interface->name, interface->version);
+               return NULL;
+       }
+
        resource = malloc(sizeof *resource);
        if (resource == NULL)
                return NULL;