Messages in this thread Patch in this message | | | From | Wen Yang <> | Subject | [PATCH] intel_th: avoid double free in error flow | Date | Wed, 20 Nov 2019 01:34:47 +0800 |
| |
There is a possible double free issue in intel_th_subdevice_alloc:
651 err = intel_th_device_add_resources(thdev, res, subdev->nres); 652 if (err) { 653 put_device(&thdev->dev); 654 goto fail_put_device; ---> freed 655 } ... 687 fail_put_device: 688 put_device(&thdev->dev); ---> double freed 689
This patch fix it by removing the unnecessary put_device().
Fixes: a753bfcfdb1f ("intel_th: Make the switch allocate its subdevices") Signed-off-by: Wen Yang <wenyang@linux.alibaba.com> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Cc: linux-kernel@vger.kernel.org --- drivers/hwtracing/intel_th/core.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/drivers/hwtracing/intel_th/core.c b/drivers/hwtracing/intel_th/core.c index d5c1821..98d195c 100644 --- a/drivers/hwtracing/intel_th/core.c +++ b/drivers/hwtracing/intel_th/core.c @@ -649,10 +649,8 @@ static inline void intel_th_request_hub_module_flush(struct intel_th *th) } err = intel_th_device_add_resources(thdev, res, subdev->nres); - if (err) { - put_device(&thdev->dev); + if (err) goto fail_put_device; - } if (subdev->type == INTEL_TH_OUTPUT) { if (subdev->mknode) -- 1.8.3.1
| |