|
@@ -594,12 +594,14 @@ vc4_get_bcl(struct drm_device *dev, struct vc4_exec_info *exec)
|
|
|
args->shader_rec_count);
|
|
|
struct vc4_bo *bo;
|
|
|
|
|
|
- if (uniforms_offset < shader_rec_offset ||
|
|
|
+ if (shader_rec_offset < args->bin_cl_size ||
|
|
|
+ uniforms_offset < shader_rec_offset ||
|
|
|
exec_size < uniforms_offset ||
|
|
|
args->shader_rec_count >= (UINT_MAX /
|
|
|
sizeof(struct vc4_shader_state)) ||
|
|
|
temp_size < exec_size) {
|
|
|
DRM_ERROR("overflow in exec arguments\n");
|
|
|
+ ret = -EINVAL;
|
|
|
goto fail;
|
|
|
}
|
|
|
|