Message ID | alpine.LNX.2.00.1210152049550.1038@swampdragon.chaosbits.net (mailing list archive) |
---|---|
State | Superseded, archived |
Headers | show |
On Mon, 2012-10-15 at 20:51 +0200, Jesper Juhl wrote: > Ok, so I had a little problem with my mail servers clock that caused the > mail below to be timestamped a few years in the past, so I assume noone > saw it - thus, resending. > > -- > Jesper Juhl <jj@chaosbits.net> http://www.chaosbits.net/ > Don't top-post http://www.catb.org/jargon/html/T/top-post.html > Plain text mails only, please. > > > ---------- Forwarded message ---------- > Date: Sun, 9 Nov 2008 14:38:30 +0100 (CET) > From: Jesper Juhl <jj@chaosbits.net> > To: linux-acpi@vger.kernel.org > Cc: linux-kernel@vger.kernel.org, Len Brown <lenb@kernel.org> > Subject: [PATCH] ACPI: Fix memory leak in acpi_bind_one() > > Memory is allocated with kzalloc() and assigned to > 'physical_node'. Then 'physical_node->node_id' is initialized with a > call to 'find_first_zero_bit()', if that results in a value greater > than ACPI_MAX_PHYSICAL_NODE we'll end up jumping to the 'err:' label > and there leave the function and let 'physical_node' go out of scope > and leak the memory we allocated. > This patch fixes the leak by simply freeing the unused/unneeded memory > pointed to by 'physical_node' just before we jump to 'err:'. > > Signed-off-by: Jesper Juhl <jj@chaosbits.net> Looks good. Reviewed-by: Toshi Kani <toshi.kani@hp.com> -Toshi > --- > drivers/acpi/glue.c | 1 + > 1 files changed, 1 insertions(+), 0 deletions(-) > > diff --git a/drivers/acpi/glue.c b/drivers/acpi/glue.c > index d1a2d74..0837308 100644 > --- a/drivers/acpi/glue.c > +++ b/drivers/acpi/glue.c > @@ -159,6 +159,7 @@ static int acpi_bind_one(struct device *dev, acpi_handle handle) > if (physical_node->node_id >= ACPI_MAX_PHYSICAL_NODE) { > retval = -ENOSPC; > mutex_unlock(&acpi_dev->physical_node_lock); > + kfree(physical_node); > goto err; > } > > -- > 1.7.1 > > -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Mon, 2012-10-15 at 20:51 +0200, Jesper Juhl wrote: > Ok, so I had a little problem with my mail servers clock that caused the > mail below to be timestamped a few years in the past, so I assume noone > saw it - thus, resending. > > -- > Jesper Juhl <jj@chaosbits.net> http://www.chaosbits.net/ > Don't top-post http://www.catb.org/jargon/html/T/top-post.html > Plain text mails only, please. > > > ---------- Forwarded message ---------- > Date: Sun, 9 Nov 2008 14:38:30 +0100 (CET) > From: Jesper Juhl <jj@chaosbits.net> > To: linux-acpi@vger.kernel.org > Cc: linux-kernel@vger.kernel.org, Len Brown <lenb@kernel.org> > Subject: [PATCH] ACPI: Fix memory leak in acpi_bind_one() > > Memory is allocated with kzalloc() and assigned to > 'physical_node'. Then 'physical_node->node_id' is initialized with a > call to 'find_first_zero_bit()', if that results in a value greater > than ACPI_MAX_PHYSICAL_NODE we'll end up jumping to the 'err:' label > and there leave the function and let 'physical_node' go out of scope > and leak the memory we allocated. > This patch fixes the leak by simply freeing the unused/unneeded memory > pointed to by 'physical_node' just before we jump to 'err:'. > > Signed-off-by: Jesper Juhl <jj@chaosbits.net> Looks good to me. Reviewed-by: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com> Thanks, Yasuaki Ishimatsu > --- > drivers/acpi/glue.c | 1 + > 1 files changed, 1 insertions(+), 0 deletions(-) > > diff --git a/drivers/acpi/glue.c b/drivers/acpi/glue.c > index d1a2d74..0837308 100644 > --- a/drivers/acpi/glue.c > +++ b/drivers/acpi/glue.c > @@ -159,6 +159,7 @@ static int acpi_bind_one(struct device *dev, acpi_handle handle) > if (physical_node->node_id >= ACPI_MAX_PHYSICAL_NODE) { > retval = -ENOSPC; > mutex_unlock(&acpi_dev->physical_node_lock); > + kfree(physical_node); > goto err; > } > > -- > 1.7.1 > > -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Mon, 15 Oct 2012, Jesper Juhl wrote: > Memory is allocated with kzalloc() and assigned to > 'physical_node'. Then 'physical_node->node_id' is initialized with a > call to 'find_first_zero_bit()', if that results in a value greater > than ACPI_MAX_PHYSICAL_NODE we'll end up jumping to the 'err:' label > and there leave the function and let 'physical_node' go out of scope > and leak the memory we allocated. > This patch fixes the leak by simply freeing the unused/unneeded memory > pointed to by 'physical_node' just before we jump to 'err:'. > > Signed-off-by: Jesper Juhl <jj@chaosbits.net> Acked-by: David Rientjes <rientjes@google.com> -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Monday 15 of October 2012 20:51:11 Jesper Juhl wrote: > Ok, so I had a little problem with my mail servers clock that caused the > mail below to be timestamped a few years in the past, so I assume noone > saw it - thus, resending. Applied to linux-pm.git/linux-next as v3.7 material, will be included in the next linux-pm push. Thanks, Rafael
diff --git a/drivers/acpi/glue.c b/drivers/acpi/glue.c index d1a2d74..0837308 100644 --- a/drivers/acpi/glue.c +++ b/drivers/acpi/glue.c @@ -159,6 +159,7 @@ static int acpi_bind_one(struct device *dev, acpi_handle handle) if (physical_node->node_id >= ACPI_MAX_PHYSICAL_NODE) { retval = -ENOSPC; mutex_unlock(&acpi_dev->physical_node_lock); + kfree(physical_node); goto err; }