Commit 3a889954 authored by Vlad Zahorodnii's avatar Vlad Zahorodnii
Browse files

Prevent setting invalid buffer transform and scale

At the moment, it is possible to crash the compositor if some client
sets a buffer scale less than 1.


(cherry picked from commit 7a1993af)
parent 09fbfa48
Pipeline #50458 passed with stage
in 7 minutes and 28 seconds
......@@ -349,14 +349,22 @@ void SurfaceInterfacePrivate::surface_commit(Resource *resource)
void SurfaceInterfacePrivate::surface_set_buffer_transform(Resource *resource, int32_t transform)
{
Q_UNUSED(resource)
if (transform < 0 || transform > WL_OUTPUT_TRANSFORM_FLIPPED_270) {
wl_resource_post_error(resource->handle, error_invalid_transform,
"buffer transform must be a valid transform (%d specified)", transform);
return;
}
pending.bufferTransform = OutputInterface::Transform(transform);
pending.bufferTransformIsSet = true;
}
void SurfaceInterfacePrivate::surface_set_buffer_scale(Resource *resource, int32_t scale)
{
Q_UNUSED(resource)
if (scale < 1) {
wl_resource_post_error(resource->handle, error_invalid_scale,
"buffer scale must be at least one (%d specified)", scale);
return;
}
pending.bufferScale = scale;
pending.bufferScaleIsSet = true;
}
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment