From: Richard Alpe <richard.alpe@ericsson.com>
Date: Wed, 6 May 2015 11:58:56 +0000 (+0200)
Subject: tipc: send explicit not supported error in nl compat
X-Git-Tag: firefly_0821_release~176^2~1587^2~347
X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=b063bc5ea77b1c1c0e7798f641f53504d0f64bf8;p=firefly-linux-kernel-4.4.55.git

tipc: send explicit not supported error in nl compat

The legacy netlink API treated EPERM (permission denied) as
"operation not supported".

Reported-by: Tomi Ollila <tomi.ollila@iki.fi>
Signed-off-by: Richard Alpe <richard.alpe@ericsson.com>
Reviewed-by: Erik Hugne <erik.hugne@ericsson.com>
Reviewed-by: Ying Xue <ying.xue@windriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
---

diff --git a/net/tipc/netlink_compat.c b/net/tipc/netlink_compat.c
index 809aaf027876..53e0fee80086 100644
--- a/net/tipc/netlink_compat.c
+++ b/net/tipc/netlink_compat.c
@@ -1121,7 +1121,7 @@ static int tipc_nl_compat_recv(struct sk_buff *skb, struct genl_info *info)
 	}
 
 	err = tipc_nl_compat_handle(&msg);
-	if (err == -EOPNOTSUPP)
+	if ((err == -EOPNOTSUPP) || (err == -EPERM))
 		msg.rep = tipc_get_err_tlv(TIPC_CFG_NOT_SUPPORTED);
 	else if (err == -EINVAL)
 		msg.rep = tipc_get_err_tlv(TIPC_CFG_TLV_ERROR);