lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Sun, 12 Jun 2022 22:45:20 +0200 From: Christian Lamparter <chunkeey@...il.com> To: Christophe JAILLET <christophe.jaillet@...adoo.fr> Cc: Kalle Valo <kvalo@...nel.org>, "David S. Miller" <davem@...emloft.net>, Eric Dumazet <edumazet@...gle.com>, Jakub Kicinski <kuba@...nel.org>, Paolo Abeni <pabeni@...hat.com>, "John W. Linville" <linville@...driver.com>, linux-kernel <linux-kernel@...r.kernel.org>, kernel-janitors@...r.kernel.org, Christian Lamparter <chunkeey@....de>, linux-wireless <linux-wireless@...r.kernel.org>, Netdev <netdev@...r.kernel.org> Subject: Re: [PATCH] p54: Fix an error handling path in p54spi_probe() Hi, On Sun, Jun 12, 2022 at 9:55 PM Christophe JAILLET <christophe.jaillet@...adoo.fr> wrote: > > If an error occurs after a successful call to p54spi_request_firmware(), it > must be undone by a corresponding release_firmware() Yes, good catch. That makes sense. > as already done in the error handling path of p54spi_request_firmware() and in > the .remove() function. > > Add the missing call in the error handling path and update some goto > label accordingly. >From what I know, "release_firmware(some *fw)" includes a check for *fw != NULL already. we could just add a single release_firmware(priv->firmware) to any of the error paths labels (i.e.: err_free_common) and then we remove the extra release_firmware(...) in p54spi_request_firmware so that we don't try to free it twice. (This also skips the need for having "err_release_firmaware" .. which unfortunately has a small typo) Regards, Christian > Fixes: cd8d3d321285 ("p54spi: p54spi driver") > Signed-off-by: Christophe JAILLET <christophe.jaillet@...adoo.fr> > --- > drivers/net/wireless/intersil/p54/p54spi.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/drivers/net/wireless/intersil/p54/p54spi.c b/drivers/net/wireless/intersil/p54/p54spi.c > index f99b7ba69fc3..679ac164c994 100644 > --- a/drivers/net/wireless/intersil/p54/p54spi.c > +++ b/drivers/net/wireless/intersil/p54/p54spi.c > @@ -650,14 +650,16 @@ static int p54spi_probe(struct spi_device *spi) > > ret = p54spi_request_eeprom(hw); > if (ret) > - goto err_free_common; > + goto err_release_firmaware; > > ret = p54_register_common(hw, &priv->spi->dev); > if (ret) > - goto err_free_common; > + goto err_release_firmaware; > > return 0; > > +err_release_firmaware: > + release_firmware(priv->firmware); > err_free_common: > free_irq(gpio_to_irq(p54spi_gpio_irq), spi); > err_free_gpio_irq: > -- > 2.34.1 >
Powered by blists - more mailing lists