Fix possible null pointer dereference.
Subsystems (2)
If in nr_link_failed the neighbour list is non-empty but the node list is empty we'll end dereferencing a in a NULL pointer.
This fixes coverity 362.
Signed-off-by Ralf Baechle <[email protected]>
net/netrom/nr_route.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-)
net/netrom/nr_route.c +8 -4
@@ -725,15 +725,17 @@ void nr_link_failed(ax25_cb *ax25, int rstruct nr_node *nr_node =NULL ;spin_lock_bh (&nr_neigh_list_lock); -nr_neigh_for_each (s, node, &nr_neigh_list) +nr_neigh_for_each (s, node, &nr_neigh_list) {if (s->ax25 == ax25) {nr_neigh_hold (s); nr_neigh = s;break ; } + }spin_unlock_bh (&nr_neigh_list_lock); -if (nr_neigh ==NULL )return ; +if (nr_neigh ==NULL ) +return ; nr_neigh->ax25 =NULL ;ax25_cb_put (ax25);
@@ -743,11 +745,13 @@ void nr_link_failed(ax25_cb *ax25, int rreturn ; }spin_lock_bh (&nr_node_list_lock); -nr_node_for_each (nr_node, node, &nr_node_list) +nr_node_for_each (nr_node, node, &nr_node_list) {nr_node_lock (nr_node); -if (nr_node->which < nr_node->count && nr_node->routes[nr_node->which].neighbour == nr_neigh) +if (nr_node->which < nr_node->count && + nr_node->routes[nr_node->which].neighbour == nr_neigh) nr_node->which++;nr_node_unlock (nr_node); + }spin_unlock_bh (&nr_node_list_lock);nr_neigh_put (nr_neigh); }
From: Ralf Baechle <[email protected]>
Date: Fri, 23 Jun 2006 22:44:37 +0100
Quoted 6 lines
If in
nr_link_failedthe neighbour list is non-empty but the node list is empty we'll end dereferencing a in a NULL pointer.This fixes coverity 362.
Signed-off-by Ralf Baechle <[email protected]>
Applied, thanks Ralf.