diff options
Diffstat (limited to 'net/tipc/subscr.c')
| -rw-r--r-- | net/tipc/subscr.c | 5 | 
1 files changed, 4 insertions, 1 deletions
| diff --git a/net/tipc/subscr.c b/net/tipc/subscr.c index b7d80bc5f4ab..f340e53da625 100644 --- a/net/tipc/subscr.c +++ b/net/tipc/subscr.c @@ -153,7 +153,10 @@ struct tipc_subscription *tipc_sub_subscribe(struct net *net,  	memcpy(&sub->evt.s, s, sizeof(*s));  	spin_lock_init(&sub->lock);  	kref_init(&sub->kref); -	tipc_nametbl_subscribe(sub); +	if (!tipc_nametbl_subscribe(sub)) { +		kfree(sub); +		return NULL; +	}  	timer_setup(&sub->timer, tipc_sub_timeout, 0);  	timeout = tipc_sub_read(&sub->evt.s, timeout);  	if (timeout != TIPC_WAIT_FOREVER) |