[drm-intel:topic/core-stuff 32/37] drivers/gpu/drm/drm_crtc.c:4472 drm_mode_crtc_set_gamma_size() warn: double check that we're allocating correct size: 2 vs 6

Daniel Vetter daniel.vetter at ffwll.ch
Wed Dec 10 06:55:02 PST 2014


Forgotten to add mailing lists.
-Daniel

On Wed, Dec 10, 2014 at 3:53 PM, Daniel Vetter <daniel.vetter at ffwll.ch> wrote:
> On Wed, Dec 10, 2014 at 3:03 PM, Dan Carpenter <dan.carpenter at oracle.com> wrote:
>> From a style prespective this should be:
>>
>>         crtc->gamma_store = kcalloc(gamma_size * 3, sizeof(uint16_t),
>>                                     GFP_KERNEL);
>>
>> Because the elements are sizeof(uint16_t), we are allocating 3
>> arrays of gamma_size elements.  But I guess it's nice to move all the
>> constants to one side of the equation so that it tests for integer
>> overflows...  Whatever you decided is fine, this is a one time email
>> that is auto-genenerated.
>
> Imo the point of kcalloc and kmalloc_array is to get the overflow
> checks correct. Putting the *3 to the gamma_size (which can be fairly
> big and migth come from dubios places) means we still have to deal
> with overflow headaches. sizeof(uint16_t)*3 is trivial to see that
> it's not overflowing.
>
> I think your style guide here is exactly _not_ what we should do as
> best practice for safe code.
> -Daniel
> --
> Daniel Vetter
> Software Engineer, Intel Corporation
> +41 (0) 79 365 57 48 - http://blog.ffwll.ch



-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch


More information about the dri-devel mailing list