[Mesa-dev] [PATCH 2/2] freedreno: a2xx: fix crash when freeing context
Rob Clark
robdclark at gmail.com
Tue Jun 26 12:00:17 UTC 2018
On Tue, Jun 26, 2018 at 3:32 AM, Erik Faye-Lund <kusmabite at gmail.com> wrote:
> On Wed, Jun 20, 2018 at 3:03 AM Jonathan Marek <jonathan at marek.ca> wrote:
>>
>> Signed-off-by: Jonathan Marek <jonathan at marek.ca>
>> ---
>> src/gallium/drivers/freedreno/a2xx/fd2_program.c | 2 ++
>> 1 file changed, 2 insertions(+)
>>
>> diff --git a/src/gallium/drivers/freedreno/a2xx/fd2_program.c b/src/gallium/drivers/freedreno/a2xx/fd2_program.c
>> index 9a77457251..834a7c7fcd 100644
>> --- a/src/gallium/drivers/freedreno/a2xx/fd2_program.c
>> +++ b/src/gallium/drivers/freedreno/a2xx/fd2_program.c
>> @@ -54,6 +54,8 @@ create_shader(enum shader_t type)
>> static void
>> delete_shader(struct fd2_shader_stateobj *so)
>> {
>> + if (!so)
>> + return;
>> ir2_shader_destroy(so->ir);
>> free(so->tokens);
>> free(so->bin);
>
> This seems to just put a band-aid on top of some other bug... Wouldn't
> it be better to lift this out to the call-site instead?
Mmm, then you just end up w/ the null check in two or three different
spots, instead of one..
I would be a bit curious to see the call-stack of the crash (since I
haven't seen similar issues with a3xx/a4xx/a5xx), but I think putting
the null check here is reasonable.
BR,
-R
More information about the mesa-dev
mailing list