2010-01-06 16:48:00

by Jiri Slaby

[permalink] [raw]
Subject: [PATCH 1/2] media: video/tuner-core, fix memory leak

Stanse found a memory leak in tuner_probe. t is not
freed/assigned on all paths. Fix that.

Signed-off-by: Jiri Slaby <[email protected]>
Cc: Mauro Carvalho Chehab <[email protected]>
Cc: [email protected]
---
drivers/media/video/tuner-core.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/drivers/media/video/tuner-core.c b/drivers/media/video/tuner-core.c
index 5b3eaa1..c4dab6c 100644
--- a/drivers/media/video/tuner-core.c
+++ b/drivers/media/video/tuner-core.c
@@ -1078,6 +1078,7 @@ static int tuner_probe(struct i2c_client *client,

goto register_client;
}
+ kfree(t);
return -ENODEV;
case 0x42:
case 0x43:
--
1.6.5.7


2010-01-06 16:48:15

by Jiri Slaby

[permalink] [raw]
Subject: [PATCH 2/2] PCI: hotplug, fix memory leaks

Stanse found a cut&pasted memory leak in pciehp_queue_pushbutton_work
and shpchp_queue_pushbutton_work. info is not freed/assigned on all
paths. Fix that.

Signed-off-by: Jiri Slaby <[email protected]>
Cc: Jesse Barnes <[email protected]>
Cc: [email protected]
---
drivers/pci/hotplug/pciehp_ctrl.c | 1 +
drivers/pci/hotplug/shpchp_ctrl.c | 1 +
2 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/drivers/pci/hotplug/pciehp_ctrl.c b/drivers/pci/hotplug/pciehp_ctrl.c
index d6ac1b2..9a7f247 100644
--- a/drivers/pci/hotplug/pciehp_ctrl.c
+++ b/drivers/pci/hotplug/pciehp_ctrl.c
@@ -341,6 +341,7 @@ void pciehp_queue_pushbutton_work(struct work_struct *work)
p_slot->state = POWERON_STATE;
break;
default:
+ kfree(info);
goto out;
}
queue_work(pciehp_wq, &info->work);
diff --git a/drivers/pci/hotplug/shpchp_ctrl.c b/drivers/pci/hotplug/shpchp_ctrl.c
index b8ab279..86f6276 100644
--- a/drivers/pci/hotplug/shpchp_ctrl.c
+++ b/drivers/pci/hotplug/shpchp_ctrl.c
@@ -462,6 +462,7 @@ void shpchp_queue_pushbutton_work(struct work_struct *work)
p_slot->state = POWERON_STATE;
break;
default:
+ kfree(info);
goto out;
}
queue_work(shpchp_wq, &info->work);
--
1.6.5.7

2010-01-06 16:53:42

by Jiri Slaby

[permalink] [raw]
Subject: Re: [PATCH 1/2] media: video/tuner-core, fix memory leak

On 01/06/2010 05:47 PM, Jiri Slaby wrote:
> Stanse found a memory leak in tuner_probe. t is not
> freed/assigned on all paths. Fix that.

Oops. I generated two patches here, only the second is for PCI.

Sorry Mauro, you got this one twice.

--
js

2010-01-06 23:54:59

by Kenji Kaneshige

[permalink] [raw]
Subject: Re: [PATCH 2/2] PCI: hotplug, fix memory leaks

Good catch.

Reviewed-by: Kenji Kaneshige <[email protected]>

Jiri Slaby wrote:
> Stanse found a cut&pasted memory leak in pciehp_queue_pushbutton_work
> and shpchp_queue_pushbutton_work. info is not freed/assigned on all
> paths. Fix that.
>
> Signed-off-by: Jiri Slaby <[email protected]>
> Cc: Jesse Barnes <[email protected]>
> Cc: [email protected]
> ---
> drivers/pci/hotplug/pciehp_ctrl.c | 1 +
> drivers/pci/hotplug/shpchp_ctrl.c | 1 +
> 2 files changed, 2 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/pci/hotplug/pciehp_ctrl.c b/drivers/pci/hotplug/pciehp_ctrl.c
> index d6ac1b2..9a7f247 100644
> --- a/drivers/pci/hotplug/pciehp_ctrl.c
> +++ b/drivers/pci/hotplug/pciehp_ctrl.c
> @@ -341,6 +341,7 @@ void pciehp_queue_pushbutton_work(struct work_struct *work)
> p_slot->state = POWERON_STATE;
> break;
> default:
> + kfree(info);
> goto out;
> }
> queue_work(pciehp_wq, &info->work);
> diff --git a/drivers/pci/hotplug/shpchp_ctrl.c b/drivers/pci/hotplug/shpchp_ctrl.c
> index b8ab279..86f6276 100644
> --- a/drivers/pci/hotplug/shpchp_ctrl.c
> +++ b/drivers/pci/hotplug/shpchp_ctrl.c
> @@ -462,6 +462,7 @@ void shpchp_queue_pushbutton_work(struct work_struct *work)
> p_slot->state = POWERON_STATE;
> break;
> default:
> + kfree(info);
> goto out;
> }
> queue_work(shpchp_wq, &info->work);