[PATCH wayland] server: validate resource versions at creation time
Derek Foreman
derekf at osg.samsung.com
Fri Jan 15 07:50:40 PST 2016
On 15/01/16 03:14 AM, Marek Chalupa wrote:
> Hi,
>
> On 01/14/2016 09:46 PM, Derek Foreman wrote:
>> We shouldn't ever create a resource with version less than 1 or
>> greater than the interface version.
>>
>> Signed-off-by: Derek Foreman <derekf at osg.samsung.com>
>> ---
>>
>> I'm a little nervous about this one.
>>
>> Anything doing this probably gets what it deserves, but it does
>> break wayland's own resource-test...
>
> It broke the test because we used wl_display_interface there and this
> interface can have only version 1, right? The previous patch of yours
> fixes it/
Right - with that patch in all tests succeed.
>>
>> I guess a compromise is landing it without the return NULL...
>>
>> src/wayland-server.c | 7 +++++++
>> 1 file changed, 7 insertions(+)
>>
>> diff --git a/src/wayland-server.c b/src/wayland-server.c
>> index 3a7d79d..8719417 100644
>> --- a/src/wayland-server.c
>> +++ b/src/wayland-server.c
>> @@ -1349,6 +1349,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 [0, %d]\n",
>
> The range should be [1, %d], shouldn't it?
Absolutely. Thanks.
>> + version, interface->name, interface->version);
>> + return NULL;
>> + }
>> +
>> resource = malloc(sizeof *resource);
>> if (resource == NULL)
>> return NULL;
>>
>
> I think that checking the version is right, so
>
> Reviewed-by: Marek Chalupa <mchqwerty at gmail.com>
>
> (for all three patches)
>
> Cheers,
> Marek
More information about the wayland-devel
mailing list