2017-06-21 13:25:38

by Colin King

[permalink] [raw]
Subject: [PATCH][net-next] qtnfmac: fix uninitialized return code in ret

From: Colin Ian King <[email protected]>

The return value ret is unitialized and garbage is being returned
for the three different error conditions when setting up the PCIe
BARs. Fix this by initializing ret to -ENOMEM to indicate that
the BARs failed to be setup correctly.

Detected by CoverityScan, CID#1437563 ("Unitialized scalar variable")

Signed-off-by: Colin Ian King <[email protected]>
---
drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c b/drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c
index f93b27f3a236..7fc4f0d6a9ad 100644
--- a/drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c
+++ b/drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c
@@ -247,7 +247,7 @@ static void qtnf_pcie_free_shm_ipc(struct qtnf_pcie_bus_priv *priv)

static int qtnf_pcie_init_memory(struct qtnf_pcie_bus_priv *priv)
{
- int ret;
+ int ret = -ENOMEM;

priv->sysctl_bar = qtnf_map_bar(priv, QTN_SYSCTL_BAR);
if (IS_ERR_OR_NULL(priv->sysctl_bar)) {
--
2.11.0


2017-06-22 08:25:24

by Sergey Matyukevich

[permalink] [raw]
Subject: Re: [PATCH][net-next] qtnfmac: fix uninitialized return code in ret

> Not related to your patch but qtnf_map_bar() should be changed not to
> return NULL. When functions return both NULL and error pointers the
> NULL is supposed to be a special type of success return. Here it is
> just a fail return where we forgot to set the error code to
> ERR_PTR(-ENOMEM).

Thanks for reporting! FWIW it is not a bug, all the checks of pci maps
are in place. Though having both ERR_PTR and NULL in return indeed
looks confusing. We will add a fix in the upcoming cleanup series.

Regards,
Sergey

2017-06-21 13:55:48

by Colin King

[permalink] [raw]
Subject: Re: [PATCH][net-next] qtnfmac: fix uninitialized return code in ret

On 21/06/17 14:54, Sergey Matyukevich wrote:
>> The return value ret is unitialized and garbage is being returned
>> for the three different error conditions when setting up the PCIe
>> BARs. Fix this by initializing ret to -ENOMEM to indicate that
>> the BARs failed to be setup correctly.
>>
>> Detected by CoverityScan, CID#1437563 ("Unitialized scalar variable")
>>
>> Signed-off-by: Colin Ian King <[email protected]>
>> ---
>> drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c b/drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c
>> index f93b27f3a236..7fc4f0d6a9ad 100644
>> --- a/drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c
>> +++ b/drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c
>> @@ -247,7 +247,7 @@ static void qtnf_pcie_free_shm_ipc(struct qtnf_pcie_bus_priv *priv)
>>
>> static int qtnf_pcie_init_memory(struct qtnf_pcie_bus_priv *priv)
>> {
>> - int ret;
>> + int ret = -ENOMEM;
>>
>> priv->sysctl_bar = qtnf_map_bar(priv, QTN_SYSCTL_BAR);
>> if (IS_ERR_OR_NULL(priv->sysctl_bar)) {
>> --
>
> Thanks !
>
> Reviewed-by: Sergey Matyukevich <[email protected]>
>
> By the way, could you please use the recepient list suggested by
> get_maintainer.pl script from the kernel scripts directory.

Yep, I did.

>
> Regards,
> Sergey
>

2017-06-22 05:11:12

by Dan Carpenter

[permalink] [raw]
Subject: Re: [PATCH][net-next] qtnfmac: fix uninitialized return code in ret

On Wed, Jun 21, 2017 at 02:25:30PM +0100, Colin King wrote:
> From: Colin Ian King <[email protected]>
>
> The return value ret is unitialized and garbage is being returned
> for the three different error conditions when setting up the PCIe
> BARs. Fix this by initializing ret to -ENOMEM to indicate that
> the BARs failed to be setup correctly.
>
> Detected by CoverityScan, CID#1437563 ("Unitialized scalar variable")
>
> Signed-off-by: Colin Ian King <[email protected]>
> ---
> drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c b/drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c
> index f93b27f3a236..7fc4f0d6a9ad 100644
> --- a/drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c
> +++ b/drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c
> @@ -247,7 +247,7 @@ static void qtnf_pcie_free_shm_ipc(struct qtnf_pcie_bus_priv *priv)
>
> static int qtnf_pcie_init_memory(struct qtnf_pcie_bus_priv *priv)
> {
> - int ret;
> + int ret = -ENOMEM;
>
> priv->sysctl_bar = qtnf_map_bar(priv, QTN_SYSCTL_BAR);
> if (IS_ERR_OR_NULL(priv->sysctl_bar)) {

Not related to your patch but qtnf_map_bar() should be changed not to
return NULL. When functions return both NULL and error pointers the
NULL is supposed to be a special type of success return. Here it is
just a fail return where we forgot to set the error code to
ERR_PTR(-ENOMEM).

regards,
dan carpenter

2017-06-28 17:50:31

by Kalle Valo

[permalink] [raw]
Subject: Re: [net-next] qtnfmac: fix uninitialized return code in ret

Colin Ian King <[email protected]> wrote:

> From: Colin Ian King <[email protected]>
>
> The return value ret is unitialized and garbage is being returned
> for the three different error conditions when setting up the PCIe
> BARs. Fix this by initializing ret to -ENOMEM to indicate that
> the BARs failed to be setup correctly.
>
> Detected by CoverityScan, CID#1437563 ("Unitialized scalar variable")
>
> Signed-off-by: Colin Ian King <[email protected]>
> Reviewed-by: Sergey Matyukevich <[email protected]>

Patch applied to wireless-drivers-next.git, thanks.

3e3d8aa61107 qtnfmac: fix uninitialized return code in ret

--
https://patchwork.kernel.org/patch/9801833/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches

2017-06-21 13:54:30

by Sergey Matyukevich

[permalink] [raw]
Subject: Re: [PATCH][net-next] qtnfmac: fix uninitialized return code in ret

> The return value ret is unitialized and garbage is being returned
> for the three different error conditions when setting up the PCIe
> BARs. Fix this by initializing ret to -ENOMEM to indicate that
> the BARs failed to be setup correctly.
>
> Detected by CoverityScan, CID#1437563 ("Unitialized scalar variable")
>
> Signed-off-by: Colin Ian King <[email protected]>
> ---
> drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c b/drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c
> index f93b27f3a236..7fc4f0d6a9ad 100644
> --- a/drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c
> +++ b/drivers/net/wireless/quantenna/qtnfmac/pearl/pcie.c
> @@ -247,7 +247,7 @@ static void qtnf_pcie_free_shm_ipc(struct qtnf_pcie_bus_priv *priv)
>
> static int qtnf_pcie_init_memory(struct qtnf_pcie_bus_priv *priv)
> {
> - int ret;
> + int ret = -ENOMEM;
>
> priv->sysctl_bar = qtnf_map_bar(priv, QTN_SYSCTL_BAR);
> if (IS_ERR_OR_NULL(priv->sysctl_bar)) {
> --

Thanks !

Reviewed-by: Sergey Matyukevich <[email protected]>

By the way, could you please use the recepient list suggested by
get_maintainer.pl script from the kernel scripts directory.

Regards,
Sergey