From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dave Young Date: Thu, 15 Jan 2015 09:54:55 +0000 Subject: Re: [patch] efi: small leak on error Message-Id: <20150115095455.GA15197@darkstar.redhat.com> List-Id: References: <20150115092121.GA17976@mwanda> In-Reply-To: <20150115092121.GA17976@mwanda> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: Dan Carpenter Cc: Matt Fleming , linux-efi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, kernel-janitors-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Hi, Dan On 01/15/15 at 12:21pm, Dan Carpenter wrote: > The "> 0" here should ">= 0" so we free map_entries[0]. > > Fixes: 926172d46038 ('efi: Export EFI runtime memory mapping to sysfs') > Signed-off-by: Dan Carpenter > > diff --git a/drivers/firmware/efi/runtime-map.c b/drivers/firmware/efi/runtime-map.c > index 018c29a..87b8e3b 100644 > --- a/drivers/firmware/efi/runtime-map.c > +++ b/drivers/firmware/efi/runtime-map.c > @@ -191,7 +191,7 @@ int __init efi_runtime_map_init(struct kobject *efi_kobj) > > return 0; > out_add_entry: > - for (j = i - 1; j > 0; j--) { > + for (j = i - 1; j >= 0; j--) { > entry = *(map_entries + j); > kobject_put(&entry->kobj); > } see below code, as for an invalid entry with i = 0, it will be not assigned to *(map_entries + i) --- for (i = 0; i < nr_efi_runtime_map; i++) { entry = add_sysfs_runtime_map_entry(efi_kobj, i); if (IS_ERR(entry)) { ret = PTR_ERR(entry); goto out_add_entry; } *(map_entries + i) = entry; } return 0; out_add_entry: for (j = i - 1; j > 0; j--) { entry = *(map_entries + j); [snip] --- Thanks Dave