mptcp: netlink: fix some error return code
authorWei Yongjun <weiyongjun1@huawei.com>
Sat, 10 Dec 2022 00:28:07 +0000 (16:28 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 7 Jan 2023 10:11:44 +0000 (11:11 +0100)
commit e0fe1123ab2b07d2cd5475660bd0b4e6993ffaa7 upstream.

Fix to return negative error code -EINVAL from some error handling
case instead of 0, as done elsewhere in those functions.

Fixes: 9ab4807c84a4 ("mptcp: netlink: Add MPTCP_PM_CMD_ANNOUNCE")
Fixes: 702c2f646d42 ("mptcp: netlink: allow userspace-driven subflow establishment")
Cc: stable@vger.kernel.org
Reviewed-by: Matthieu Baerts <matthieu.baerts@tessares.net>
Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>
Signed-off-by: Mat Martineau <mathew.j.martineau@linux.intel.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
net/mptcp/pm_userspace.c

index 9e82250..0430415 100644 (file)
@@ -156,6 +156,7 @@ int mptcp_nl_cmd_announce(struct sk_buff *skb, struct genl_info *info)
 
        if (addr_val.addr.id == 0 || !(addr_val.flags & MPTCP_PM_ADDR_FLAG_SIGNAL)) {
                GENL_SET_ERR_MSG(info, "invalid addr id or flags");
+               err = -EINVAL;
                goto announce_err;
        }
 
@@ -282,6 +283,7 @@ int mptcp_nl_cmd_sf_create(struct sk_buff *skb, struct genl_info *info)
 
        if (addr_l.id == 0) {
                NL_SET_ERR_MSG_ATTR(info->extack, laddr, "missing local addr id");
+               err = -EINVAL;
                goto create_err;
        }
 
@@ -395,11 +397,13 @@ int mptcp_nl_cmd_sf_destroy(struct sk_buff *skb, struct genl_info *info)
 
        if (addr_l.family != addr_r.family) {
                GENL_SET_ERR_MSG(info, "address families do not match");
+               err = -EINVAL;
                goto destroy_err;
        }
 
        if (!addr_l.port || !addr_r.port) {
                GENL_SET_ERR_MSG(info, "missing local or remote port");
+               err = -EINVAL;
                goto destroy_err;
        }