• Daniel Vetter's avatar
    drm/i915: Use unsigned for overflow checks in execbuf · b205ca57
    Daniel Vetter authored
    There's actually no real risk since we already check for stricter
    constraints earlier (using UINT_MAX / sizeof (struct
    drm_i915_gem_exec_object2) as the limit). But in eb_create we use
    signed integers, which steals a factor of 2. Luckily struct
    drm_i915_gem_exec_object2 for this to not matter.
    
    Still, be consistent and use unsigned integers.
    
    Similar use unsinged integers when checking for overflows in the
    relocation entry processing.
    
    I've also added a new subtests to igt/gem_reloc_overflow to also
    test for overflowing args->buffer_count values.
    
    v2: Give the variables again tighter scope to make it clear that the
    computation is purely local and doesn't leak out to the 2nd block.
    Requested by Chris Wilson.
    
    Cc: Chris Wilson <chris@chris-wilson.co.uk>
    Reviewed-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    b205ca57
i915_gem_execbuffer.c 35.4 KB