On Thu, 2020-06-11 at 13:15 +0200, Greg KH wrote: > On Thu, Jun 11, 2020 at 09:37:42AM +0800, Miles Chen wrote: > > @@ -2601,7 +2603,17 @@ i915_gem_execbuffer2_ioctl(struct drm_device *dev, void *data, > > unsigned int i; > > > > /* Copy the new buffer offsets back to the user's exec list. */ > > - user_access_begin(); > > + /* > > + * Note: count * sizeof(*user_exec_list) does not overflow, > > + * because we checked 'count' in check_buffer_count(). > > + * > > + * And this range already got effectively checked earlier > > + * when we did the "copy_from_user()" above. > > + */ > > + if (!user_access_begin(VERIFY_WRITE, user_exec_list, > > + count * sizeof(*user_exec_list))) > > + goto end_user; > > + > > for (i = 0; i < args->buffer_count; i++) { > > if (!(exec2_list[i].offset & UPDATE)) > > continue; > > No one seems to have test-built this code, it fails here on the 4.14.y > kernel :( > > I'll go fix it up, but please, always at the very least, test build your > patches before sending them out... > > thanks, Sorry for the breakage. It won't happen next time. cheers, Miles > > greg k-h