Patchwork nl80211: avoid "wdev_id may be used uninitialized"

login
register
mail settings
Submitter Stephen Warren
Date Jan. 30, 2013, 12:11 a.m.
Message ID <1359504662-23561-1-git-send-email-swarren@wwwdotorg.org>
Download mbox | patch
Permalink /patch/216736/
State Not Applicable
Delegated to: David Miller
Headers show

Comments

Stephen Warren - Jan. 30, 2013, 12:11 a.m.
From: Stephen Warren <swarren@nvidia.com>

Silence the following:
net/wireless/nl80211.c: In function '__cfg80211_wdev_from_attrs.clone.119':
net/wireless/nl80211.c:57:6: warning: 'wdev_id' may be used uninitialized in this function

... by always initializing wdev_id to zero. I assume that wiphy_idx and
ifidx are set to -1 for similar reasons, so this change simply propagates
the same workaround.

In practice, this warning is false, since wdev_id is both set and used
under the condition if (have_wdev_id). However, at least my compiler
can't be coerced into realizing this; almost any code between the if
blocks that set and use the variable causes this warning.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
---
 net/wireless/nl80211.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
Johannes Berg - Jan. 30, 2013, 7:57 a.m.
On Tue, 2013-01-29 at 17:11 -0700, Stephen Warren wrote:
> From: Stephen Warren <swarren@nvidia.com>
> 
> Silence the following:
> net/wireless/nl80211.c: In function '__cfg80211_wdev_from_attrs.clone.119':
> net/wireless/nl80211.c:57:6: warning: 'wdev_id' may be used uninitialized in this function
> 
> ... by always initializing wdev_id to zero. I assume that wiphy_idx and
> ifidx are set to -1 for similar reasons, so this change simply propagates
> the same workaround.
> 
> In practice, this warning is false, since wdev_id is both set and used
> under the condition if (have_wdev_id). However, at least my compiler
> can't be coerced into realizing this; almost any code between the if
> blocks that set and use the variable causes this warning.

I don't see this warning? What compiler are you using?

johannes

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Stephen Warren - Jan. 30, 2013, 4:49 p.m.
On 01/30/2013 12:57 AM, Johannes Berg wrote:
> On Tue, 2013-01-29 at 17:11 -0700, Stephen Warren wrote:
>> From: Stephen Warren <swarren@nvidia.com>
>>
>> Silence the following:
>> net/wireless/nl80211.c: In function '__cfg80211_wdev_from_attrs.clone.119':
>> net/wireless/nl80211.c:57:6: warning: 'wdev_id' may be used uninitialized in this function
>>
>> ... by always initializing wdev_id to zero. I assume that wiphy_idx and
>> ifidx are set to -1 for similar reasons, so this change simply propagates
>> the same workaround.
>>
>> In practice, this warning is false, since wdev_id is both set and used
>> under the condition if (have_wdev_id). However, at least my compiler
>> can't be coerced into realizing this; almost any code between the if
>> blocks that set and use the variable causes this warning.
> 
> I don't see this warning? What compiler are you using?

I'm using gcc-4.5.3 for ARM. I checked with gcc-4.6.3 and gcc-4.7.2 and
indeed I don't see the warning there.

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Johannes Berg - Jan. 31, 2013, 8:51 p.m.
On Wed, 2013-01-30 at 09:49 -0700, Stephen Warren wrote:
> On 01/30/2013 12:57 AM, Johannes Berg wrote:
> > On Tue, 2013-01-29 at 17:11 -0700, Stephen Warren wrote:
> >> From: Stephen Warren <swarren@nvidia.com>
> >>
> >> Silence the following:
> >> net/wireless/nl80211.c: In function '__cfg80211_wdev_from_attrs.clone.119':
> >> net/wireless/nl80211.c:57:6: warning: 'wdev_id' may be used uninitialized in this function
> >>
> >> ... by always initializing wdev_id to zero. I assume that wiphy_idx and
> >> ifidx are set to -1 for similar reasons, so this change simply propagates
> >> the same workaround.
> >>
> >> In practice, this warning is false, since wdev_id is both set and used
> >> under the condition if (have_wdev_id). However, at least my compiler
> >> can't be coerced into realizing this; almost any code between the if
> >> blocks that set and use the variable causes this warning.
> > 
> > I don't see this warning? What compiler are you using?
> 
> I'm using gcc-4.5.3 for ARM. I checked with gcc-4.6.3 and gcc-4.7.2 and
> indeed I don't see the warning there.

Interesting. So should I keep it or remove it? I guess in this
particular instance it doesn't matter all that much. In other cases I'd
be more against changing it I guess.

johannes

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Stephen Warren - Jan. 31, 2013, 10:21 p.m.
On 01/31/2013 01:51 PM, Johannes Berg wrote:
> On Wed, 2013-01-30 at 09:49 -0700, Stephen Warren wrote:
>> On 01/30/2013 12:57 AM, Johannes Berg wrote:
>>> On Tue, 2013-01-29 at 17:11 -0700, Stephen Warren wrote:
>>>> From: Stephen Warren <swarren@nvidia.com>
>>>>
>>>> Silence the following:
>>>> net/wireless/nl80211.c: In function '__cfg80211_wdev_from_attrs.clone.119':
>>>> net/wireless/nl80211.c:57:6: warning: 'wdev_id' may be used uninitialized in this function
>>>>
>>>> ... by always initializing wdev_id to zero. I assume that wiphy_idx and
>>>> ifidx are set to -1 for similar reasons, so this change simply propagates
>>>> the same workaround.
>>>>
>>>> In practice, this warning is false, since wdev_id is both set and used
>>>> under the condition if (have_wdev_id). However, at least my compiler
>>>> can't be coerced into realizing this; almost any code between the if
>>>> blocks that set and use the variable causes this warning.
>>>
>>> I don't see this warning? What compiler are you using?
>>
>> I'm using gcc-4.5.3 for ARM. I checked with gcc-4.6.3 and gcc-4.7.2 and
>> indeed I don't see the warning there.
> 
> Interesting. So should I keep it or remove it? I guess in this
> particular instance it doesn't matter all that much. In other cases I'd
> be more against changing it I guess.

It's your call. I guess since it's fixed going forward in gcc, you may
as well drop it though.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c
index 33de803..389e62a 100644
--- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c
@@ -54,7 +54,7 @@  __cfg80211_wdev_from_attrs(struct net *netns, struct nlattr **attrs)
 	struct wireless_dev *result = NULL;
 	bool have_ifidx = attrs[NL80211_ATTR_IFINDEX];
 	bool have_wdev_id = attrs[NL80211_ATTR_WDEV];
-	u64 wdev_id;
+	u64 wdev_id = 0;
 	int wiphy_idx = -1;
 	int ifidx = -1;