diff options
author | Sven Eckelmann <sven.eckelmann@gmx.de> | 2010-10-19 05:59:10 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2010-10-19 13:04:16 -0400 |
commit | 9b37bc2c711b2a76ef3daa9437bbf9c58411afbd (patch) | |
tree | 745f0b7b3a736a858a920808e44e2f40647e7d9b | |
parent | 1ee600ced32c4cabaeead0a4e84a6d4c9110f82c (diff) |
Staging: batman-adv: Don't dereference unchecked incoming soft_iface
send_packet derefenced forw_packet->if_incoming and checked if
forw_packet->if_incoming is NULL.
This cannot happen, but still makes irritates when reading through the
functions.
Reported-by: Dan Carpenter <error27@gmail.com>
Signed-off-by: Sven Eckelmann <sven.eckelmann@gmx.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r-- | drivers/staging/batman-adv/send.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/staging/batman-adv/send.c b/drivers/staging/batman-adv/send.c index 5d57ef5120b0..903286159b6e 100644 --- a/drivers/staging/batman-adv/send.c +++ b/drivers/staging/batman-adv/send.c | |||
@@ -160,8 +160,8 @@ static void send_packet_to_if(struct forw_packet *forw_packet, | |||
160 | static void send_packet(struct forw_packet *forw_packet) | 160 | static void send_packet(struct forw_packet *forw_packet) |
161 | { | 161 | { |
162 | struct batman_if *batman_if; | 162 | struct batman_if *batman_if; |
163 | struct net_device *soft_iface = forw_packet->if_incoming->soft_iface; | 163 | struct net_device *soft_iface; |
164 | struct bat_priv *bat_priv = netdev_priv(soft_iface); | 164 | struct bat_priv *bat_priv; |
165 | struct batman_packet *batman_packet = | 165 | struct batman_packet *batman_packet = |
166 | (struct batman_packet *)(forw_packet->skb->data); | 166 | (struct batman_packet *)(forw_packet->skb->data); |
167 | unsigned char directlink = (batman_packet->flags & DIRECTLINK ? 1 : 0); | 167 | unsigned char directlink = (batman_packet->flags & DIRECTLINK ? 1 : 0); |
@@ -172,6 +172,9 @@ static void send_packet(struct forw_packet *forw_packet) | |||
172 | return; | 172 | return; |
173 | } | 173 | } |
174 | 174 | ||
175 | soft_iface = forw_packet->if_incoming->soft_iface; | ||
176 | bat_priv = netdev_priv(soft_iface); | ||
177 | |||
175 | if (forw_packet->if_incoming->if_status != IF_ACTIVE) | 178 | if (forw_packet->if_incoming->if_status != IF_ACTIVE) |
176 | return; | 179 | return; |
177 | 180 | ||