[Mesa-dev] [PATCH 2/4] intel/decoder: Avoid freeing invalid pointer

Lionel Landwerlin lionel.g.landwerlin at intel.com
Wed Sep 5 18:06:07 UTC 2018


On 05/09/2018 19:02, Sagar Ghuge wrote:
> Hi Lionel,
>
> Thanks for reviewing patches and comments.
>
> On 09/05/2018 10:29 AM, Lionel Landwerlin wrote:
>> On 05/09/2018 18:19, Sagar Ghuge wrote:
>>> Signed-off-by: Sagar Ghuge <sagar.ghuge at intel.com>
>>> ---
>>>    src/intel/common/gen_decoder.c | 4 ----
>>>    1 file changed, 4 deletions(-)
>>>
>>> diff --git a/src/intel/common/gen_decoder.c b/src/intel/common/gen_decoder.c
>>> index dbd060d53c..c44b8f060d 100644
>>> --- a/src/intel/common/gen_decoder.c
>>> +++ b/src/intel/common/gen_decoder.c
>>> @@ -662,8 +662,6 @@ gen_spec_load_from_path(const struct gen_device_info *devinfo,
>>>          len = fread(buf, 1, XML_BUFFER_SIZE, input);
>>>          if (len == 0) {
>>>             fprintf(stderr, "fread: %m\n");
>>> -         free(ctx.spec);
>>> -         ctx.spec = NULL;
>>>             goto end;
>>>          }
>>>          if (XML_ParseBuffer(ctx.parser, len, len == 0) == 0) {
>>> @@ -672,8 +670,6 @@ gen_spec_load_from_path(const struct gen_device_info *devinfo,
>>>                     XML_GetCurrentLineNumber(ctx.parser),
>>>                     XML_GetCurrentColumnNumber(ctx.parser),
>>>                     XML_ErrorString(XML_GetErrorCode(ctx.parser)));
>>> -         free(ctx.spec);
>>> -         ctx.spec = NULL;
>>>             goto end;
>>>          }
>>>       } while (len > 0);
>> Looks good but we're still missing a ralloc_free(ctx.spec) after the end label.
> In patch 4, I am freeing up gen_batch_decode_ctx instance using gen_batch_decode_ctx_finish() which is also responsible for destroying spec.


I see. But I assumed that would be only in the case this function succeeded.

If we didn't manage to parse the genxml, is there much of a point trying 
to decode anything?





More information about the mesa-dev mailing list