Commit 672ca65d authored by Parthasarathy Bhuvaragan's avatar Parthasarathy Bhuvaragan Committed by David S. Miller

tipc: fix variable dereference before NULL check

In commit cf6f7e1d ("tipc: dump monitor attributes"),
I dereferenced a pointer before checking if its valid.
This is reported by static check Smatch as:
net/tipc/monitor.c:733 tipc_nl_add_monitor_peer()
     warn: variable dereferenced before check 'mon' (see line 731)

In this commit, we check for a valid monitor before proceeding
with any other operation.

Fixes: cf6f7e1d ("tipc: dump monitor attributes")
Reported-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: default avatarParthasarathy Bhuvaragan <parthasarathy.bhuvaragan@ericsson.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 293fddff
...@@ -728,12 +728,13 @@ int tipc_nl_add_monitor_peer(struct net *net, struct tipc_nl_msg *msg, ...@@ -728,12 +728,13 @@ int tipc_nl_add_monitor_peer(struct net *net, struct tipc_nl_msg *msg,
u32 bearer_id, u32 *prev_node) u32 bearer_id, u32 *prev_node)
{ {
struct tipc_monitor *mon = tipc_monitor(net, bearer_id); struct tipc_monitor *mon = tipc_monitor(net, bearer_id);
struct tipc_peer *peer = mon->self; struct tipc_peer *peer;
if (!mon) if (!mon)
return -EINVAL; return -EINVAL;
read_lock_bh(&mon->lock); read_lock_bh(&mon->lock);
peer = mon->self;
do { do {
if (*prev_node) { if (*prev_node) {
if (peer->addr == *prev_node) if (peer->addr == *prev_node)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment