[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <13cbbb1d-842d-819f-e57e-f6ec28ed73d0@hust.edu.cn>
Date: Fri, 17 Mar 2023 19:57:05 +0800
From: Dongliang Mu <dzm91@...t.edu.cn>
To: srinivas pandruvada <srinivas.pandruvada@...ux.intel.com>,
Hans de Goede <hdegoede@...hat.com>,
Mark Gross <markgross@...nel.org>
Cc: platform-driver-x86@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH linux-next v2 1/3] platform/x86/intel/tpmi: Fix double
free in tpmi_create_device()
On 2023/3/17 18:23, srinivas pandruvada wrote:
> Hi,
>
> ...
> ...
>
>>> Hi Srinivas and Hans,
>>>
>>> How about folding these three patches into one patch and resend a
>>> v3 patch?
>>>
>>> This will get all people together and avoid the previous
>>> embarrassing sitation.
>> If I understand things correctly then patch 1/3 needs 3/3 to function
>> correctly, right ?
>>
>> I would not fold them together, smaller patches are easier to review
>> / understand, but maybe change the order and put patch 3/3 first? (so
>> make it 1/3) ?
> That should be correct order. The patch 3/3 should be the first.
Oh, yeah. The memory leak fix 3/3 should be the first. This is more
reasonable.
BTW, I separated this memory leak fix due to that the kernel mainline is
still vulnerable to this memory leak problem.
>
>> I can even do that when applying if you agree that is the better
>> order.
> Agree.
>
> Thanks,
> Srinivas
>
>> Regards,
>>
>> Hans
>>
>>
>>
>>>>>> ---
>>>>>> drivers/platform/x86/intel/tpmi.c | 17 ++++-------------
>>>>>> 1 file changed, 4 insertions(+), 13 deletions(-)
>>>>>>
>>>>>> diff --git a/drivers/platform/x86/intel/tpmi.c
>>>>>> b/drivers/platform/x86/intel/tpmi.c
>>>>>> index c999732b0f1e..882fe5e4763f 100644
>>>>>> --- a/drivers/platform/x86/intel/tpmi.c
>>>>>> +++ b/drivers/platform/x86/intel/tpmi.c
>>>>>> @@ -215,8 +215,8 @@ static int tpmi_create_device(struct
>>>>>> intel_tpmi_info *tpmi_info,
>>>>>> feature_vsec_dev =
>>>>>> kzalloc(sizeof(*feature_vsec_dev),
>>>>>> GFP_KERNEL);
>>>>>> if (!feature_vsec_dev) {
>>>>>> - ret = -ENOMEM;
>>>>>> - goto free_res;
>>>>>> + kfree(res);
>>>>>> + return -ENOMEM;
>>>>>> }
>>>>>> snprintf(feature_id_name, sizeof(feature_id_name),
>>>>>> "tpmi-
>>>>>> %s", name);
>>>>>> @@ -242,17 +242,8 @@ static int tpmi_create_device(struct
>>>>>> intel_tpmi_info *tpmi_info,
>>>>>> * feature_vsec_dev memory is also freed as part of
>>>>>> device
>>>>>> * delete.
>>>>>> */
>>>>>> - ret = intel_vsec_add_aux(vsec_dev->pcidev, &vsec_dev-
>>>>>>> auxdev.dev,
>>>>>> - feature_vsec_dev,
>>>>>> feature_id_name);
>>>>>> - if (ret)
>>>>>> - goto free_res;
>>>>>> -
>>>>>> - return 0;
>>>>>> -
>>>>>> -free_res:
>>>>>> - kfree(res);
>>>>>> -
>>>>>> - return ret;
>>>>>> + return intel_vsec_add_aux(vsec_dev->pcidev,
>>>>>> &vsec_dev-
>>>>>>> auxdev.dev,
>>>>>> + feature_vsec_dev,
>>>>>> feature_id_name);
>>>>>> }
>>>>>> static int tpmi_create_devices(struct intel_tpmi_info
>>>>>> *tpmi_info)
Powered by blists - more mailing lists