2019-12-12 19:54:21

by Colin King

[permalink] [raw]
Subject: re: drm/i915: Use the i915_device name for identifying our, request fences

Hi,

Static analysis with Coverity has picked up an issue with the following
commit:

commit 65c29dbb19b2451990c5c477fef7ada3b8218f05
Author: Chris Wilson <[email protected]>
Date: Wed Dec 11 15:02:04 2019 +0000

drm/i915: Use the i915_device name for identifying our request fences

In source drivers/gpu/drm/i915/i915_request.c and function
i915_fence_get_timeline_name there is the following:

return to_request(fence)->gem_context->name ?: "[" DRIVER_NAME "]";

However name is an array: char name[TASK_COMM_LEN + 8], so it can never
be null, so the ternary operator will always return name and will never
reaturn "[" DRIVER_NAME "]". Should it instead be checking if name[0]
is '\0' instead?

Colin


2019-12-12 20:43:18

by Chris Wilson

[permalink] [raw]
Subject: re: drm/i915: Use the i915_device name for identifying our, request fences

Quoting Colin Ian King (2019-12-12 19:53:33)
> Hi,
>
> Static analysis with Coverity has picked up an issue with the following
> commit:
>
> commit 65c29dbb19b2451990c5c477fef7ada3b8218f05
> Author: Chris Wilson <[email protected]>
> Date: Wed Dec 11 15:02:04 2019 +0000
>
> drm/i915: Use the i915_device name for identifying our request fences
>
> In source drivers/gpu/drm/i915/i915_request.c and function
> i915_fence_get_timeline_name there is the following:
>
> return to_request(fence)->gem_context->name ?: "[" DRIVER_NAME "]";
>
> However name is an array: char name[TASK_COMM_LEN + 8], so it can never
> be null, so the ternary operator will always return name and will never
> reaturn "[" DRIVER_NAME "]". Should it instead be checking if name[0]
> is '\0' instead?

It's older than that patch, we made it a char[] some time ago. There's a
patch pending to make it conditional on ce->gem_context instead.
-Chris

2019-12-12 21:00:51

by Colin King

[permalink] [raw]
Subject: Re: drm/i915: Use the i915_device name for identifying our, request fences

On 12/12/2019 20:38, Chris Wilson wrote:
> Quoting Colin Ian King (2019-12-12 19:53:33)
>> Hi,
>>
>> Static analysis with Coverity has picked up an issue with the following
>> commit:
>>
>> commit 65c29dbb19b2451990c5c477fef7ada3b8218f05
>> Author: Chris Wilson <[email protected]>
>> Date: Wed Dec 11 15:02:04 2019 +0000
>>
>> drm/i915: Use the i915_device name for identifying our request fences
>>
>> In source drivers/gpu/drm/i915/i915_request.c and function
>> i915_fence_get_timeline_name there is the following:
>>
>> return to_request(fence)->gem_context->name ?: "[" DRIVER_NAME "]";
>>
>> However name is an array: char name[TASK_COMM_LEN + 8], so it can never
>> be null, so the ternary operator will always return name and will never
>> reaturn "[" DRIVER_NAME "]". Should it instead be checking if name[0]
>> is '\0' instead?
>
> It's older than that patch, we made it a char[] some time ago. There's a
> patch pending to make it conditional on ce->gem_context instead.
> -Chris
>
Ah, thanks for looking into that.

Colin