From: Sven Eckelmann Date: Tue, 19 Oct 2010 09:59:10 +0000 (+0200) Subject: Staging: batman-adv: Don't dereference unchecked incoming soft_iface X-Git-Url: http://drtracing.org/?a=commitdiff_plain;h=9b37bc2c711b2a76ef3daa9437bbf9c58411afbd;p=deliverable%2Flinux.git 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 Signed-off-by: Sven Eckelmann Signed-off-by: Greg Kroah-Hartman --- 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, static void send_packet(struct forw_packet *forw_packet) { struct batman_if *batman_if; - struct net_device *soft_iface = forw_packet->if_incoming->soft_iface; - struct bat_priv *bat_priv = netdev_priv(soft_iface); + struct net_device *soft_iface; + struct bat_priv *bat_priv; struct batman_packet *batman_packet = (struct batman_packet *)(forw_packet->skb->data); unsigned char directlink = (batman_packet->flags & DIRECTLINK ? 1 : 0); @@ -172,6 +172,9 @@ static void send_packet(struct forw_packet *forw_packet) return; } + soft_iface = forw_packet->if_incoming->soft_iface; + bat_priv = netdev_priv(soft_iface); + if (forw_packet->if_incoming->if_status != IF_ACTIVE) return;