Thanks, yeah this is obviously the correct way to do it. Acked-by: Mario Limonciello <mario.limonciello@xxxxxxxx> > -----Original Message----- > From: Dan Carpenter [mailto:dan.carpenter@xxxxxxxxxx] > Sent: Thursday, January 18, 2018 4:45 AM > To: Pali Rohár <pali.rohar@xxxxxxxxx>; Limonciello, Mario > <Mario_Limonciello@xxxxxxxx> > Cc: Darren Hart <dvhart@xxxxxxxxxxxxx>; Andy Shevchenko > <andy@xxxxxxxxxxxxx>; platform-driver-x86@xxxxxxxxxxxxxxx; kernel- > janitors@xxxxxxxxxxxxxxx > Subject: [PATCH] platform/x86: dell-smbios: Fix error handling in > build_tokens_sysfs() > > We're freeing "value_name" which is NULL, so that's a no-op, instead of > "location_name" and then we don't free the first zero-th elements of > token_location_attrs[] and token_value_attrs[]. > > Fixes: 33b9ca1e53b4 ("platform/x86: dell-smbios: Add a sysfs interface for SMBIOS > tokens") > Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx> > > diff --git a/drivers/platform/x86/dell-smbios.c b/drivers/platform/x86/dell- > smbios.c > index 6a60db515bda..d8a21c7ba594 100644 > --- a/drivers/platform/x86/dell-smbios.c > +++ b/drivers/platform/x86/dell-smbios.c > @@ -512,7 +512,7 @@ static int build_tokens_sysfs(struct platform_device *dev) > continue; > > loop_fail_create_value: > - kfree(value_name); > + kfree(location_name); > goto out_unwind_strings; > } > smbios_attribute_group.attrs = token_attrs; > @@ -523,7 +523,7 @@ static int build_tokens_sysfs(struct platform_device *dev) > return 0; > > out_unwind_strings: > - for (i = i-1; i > 0; i--) { > + for (i = i-1; i >= 0; i--) { > kfree(token_location_attrs[i].attr.name); > kfree(token_value_attrs[i].attr.name); > } -- To unsubscribe from this list: send the line "unsubscribe kernel-janitors" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html