From patchwork Mon Jan 29 04:48:07 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christoph Paasch X-Patchwork-Id: 867017 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=apple.com header.i=@apple.com header.b="c3u/zinN"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3zVH8d3cLsz9s7n for ; Mon, 29 Jan 2018 15:48:49 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751264AbeA2Esp (ORCPT ); Sun, 28 Jan 2018 23:48:45 -0500 Received: from mail-out6.apple.com ([17.151.62.28]:45891 "EHLO mail-in6.apple.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751175AbeA2Eso (ORCPT ); Sun, 28 Jan 2018 23:48:44 -0500 DKIM-Signature: v=1; a=rsa-sha256; d=apple.com; s=mailout2048s; c=relaxed/simple; q=dns/txt; i=@apple.com; t=1517201323; x=2381114923; h=From:Sender:Reply-To:Subject:Date:Message-id:To:Cc:MIME-Version:Content-Type: Content-transfer-encoding:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=mYYlHJjbfpCn4OhWl6d0DElAIfdW6zBpqaexW3Ce3FQ=; b=c3u/zinNmL6LRk/ygjsJsC6Gn6q67lbHbfly45qeTmKDSLLcn9m0UGFzHUq/wl9k 6Hj3A9DycI/lYv1v2h4YW7orqURqFXR8Q3CvoFg7qKjx5r5+HjKpnVUQAIMXZNWM co6ZV83BDMl5vX7KEarndb/Zp+yy52gcTzc3sLv/odkBwy8NucFMzhwjfZertaB0 GpPVFqWVbqTZfvLE/av1LLqqpgZxBeN81/7dFO3ImirdXPeeCg+5hMesFaHHNkbB QBhmRKtvnslWXB1kcePLrMAIR2Sd+cHbDeECvU3uUSXoV71wAl9VuTW/Dtrs3wZD f54uH9+/Dln0zcZvmbs0+Q==; Received: from relay8.apple.com (relay8.apple.com [17.128.113.102]) (using TLS with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mail-in6.apple.com (Apple Secure Mail Relay) with SMTP id 89.D4.13322.BA7AE6A5; Sun, 28 Jan 2018 20:48:43 -0800 (PST) X-AuditID: 11973e15-bafff7000000340a-c2-5a6ea7ab0325 Received: from nwk-mmpp-sz10.apple.com (nwk-mmpp-sz10.apple.com [17.128.115.122]) by relay8.apple.com (Apple SCV relay) with SMTP id FF.16.22651.BA7AE6A5; Sun, 28 Jan 2018 20:48:43 -0800 (PST) Content-transfer-encoding: 7BIT Received: from localhost ([17.149.230.155]) by nwk-mmpp-sz10.apple.com (Oracle Communications Messaging Server 8.0.2.1.20180104 64bit (built Jan 4 2018)) with ESMTPSA id <0P3A00608W17YU20@nwk-mmpp-sz10.apple.com>; Sun, 28 Jan 2018 20:48:43 -0800 (PST) From: Christoph Paasch To: David Miller Cc: netdev@vger.kernel.org, Al Viro , Christoph Hellwig Subject: [PATCH] devinet_ioctl(): Set ret to 0 when breaking out of the switch-case Date: Sun, 28 Jan 2018 20:48:07 -0800 Message-id: <20180129044807.46975-1-cpaasch@apple.com> X-Mailer: git-send-email 2.16.1 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFmphluLIzCtJLcpLzFFi42IRbChM0129PC/K4N4uE4s551tYLFauPspk cWyBmMX5v8dZHVg8tqy8yeSx+2YDm8fnTXIem568ZQpgieKySUnNySxLLdK3S+DKODHjHFPB Qp6KvV8OMzcwfuHsYuTkkBAwkbjUe42ti5GLQ0hgDZPEvG2zGGES9xcvZ4dIHGKU6N2/iLmL kYODWUBe4uB5WYh4E5PE1p4PYA3CApIS3XfuMIPYbAJaEm9vt7OC2CICahITT0wAizMLxEuc OfuZCWSOsECoxJ5diSBhFgFVifPLJrCA2LwCZhKnl75mh7hBXuLwmyZWkF0SAg9ZJT40/mGb wMg/C+GMBYyMqxiFchMzc3Qz88z0EgsKclL1kvNzNzGCgm26negOxjOrrA4xCnAwKvHwfgjN ixJiTSwrrsw9xCjNwaIkzrtrf3aUkEB6YklqdmpqQWpRfFFpTmrxIUYmDk6pBkadjiUPTkUy LljYxHtpBdd7AblUwwyd09EK4kdviXB7zrzW/m/PUbsDBx5uXqej4ztlZW6kf8QFVk1Bcf4b +gd9JlvXLTtopPT48FTzHe+XLzm9b0/Cz8oHK5evyH2171U4b9PPqDKHG1OXrK6JPvDlcvgh qwdBgpZz37W/OiW9xOndvDvG5ZWrlViKMxINtZiLihMBU+wzahcCAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrOJMWRmVeSWpSXmKPExsUi2FBcpbt6eV6UwdFLBhZzzrewWKxcfZTJ 4tgCMYvzf4+zOrB4bFl5k8lj980GNo/Pm+Q8Nj15yxTAEsVlk5Kak1mWWqRvl8CVcWLGOaaC hTwVe78cZm5g/MLZxcjJISFgInF/8XL2LkYuDiGBQ4wSvfsXMXcxcnAwC8hLHDwvCxFvYpLY 2vOBEaRBWEBSovvOHWYQm01AS+Lt7XZWEFtEQE1i4okJYHFmgXiJM2c/M4HMERYIldizKxEk zCKgKnF+2QQWEJtXwEzi9NLX7BA3yEscftPEOoGRZxbC5gWMjKsYBYpScxIrLfQSCwpyUvWS 83M3MYKDozBtB2PTcqtDjAIcjEo8vB9C86KEWBPLiitzgV7gYFYS4b1XCBTiTUmsrEotyo8v Ks1JLT7EKM3BoiTO+4onN0pIID2xJDU7NbUgtQgmy8TBKdXAGCozb4ri0X/zl3RuVb/FsMJ6 P9vGi0vS3l8LkS1RSMrrzHG7d+3s5dcREaku7/zN69YevrP93Se1pPN7H566p/LyslaJbe6e YuOfZTe8kxfz30mqu8IzddrhZRy/f67i+iWX+TU/2/PhxmxJxT6+i32HW6+VJUhFqvN/ChB3 /3rSku8JS1RAuBJLcUaioRZzUXEiANsq78AKAgAA Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Commit 03aef17bb79b ("devinet_ioctl(): take copyin/copyout to caller") introduced a regression when using ifconfig. ifconfig doesn't show the address anymore. The reason is that the above patch changed the flow in devinet_ioctl(), where we break; and end up returning ret. ret however is set to -EADDRNOTAVAIL, which later on prevents the copy_to_user() in inet_ioctl(). Thus, when we break in devinet_ioctl() we have to set ret to 0 to properly return out of devinet_ioctl. Cc: Al Viro Cc: Christoph Hellwig Fixes: 03aef17bb79b ("devinet_ioctl(): take copyin/copyout to caller") Signed-off-by: Christoph Paasch --- net/ipv4/devinet.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/net/ipv4/devinet.c b/net/ipv4/devinet.c index e056c0067f2c..942dbc73def0 100644 --- a/net/ipv4/devinet.c +++ b/net/ipv4/devinet.c @@ -1049,18 +1049,22 @@ int devinet_ioctl(struct net *net, unsigned int cmd, struct ifreq *ifr) switch (cmd) { case SIOCGIFADDR: /* Get interface address */ sin->sin_addr.s_addr = ifa->ifa_local; + ret = 0; break; case SIOCGIFBRDADDR: /* Get the broadcast address */ sin->sin_addr.s_addr = ifa->ifa_broadcast; + ret = 0; break; case SIOCGIFDSTADDR: /* Get the destination address */ sin->sin_addr.s_addr = ifa->ifa_address; + ret = 0; break; case SIOCGIFNETMASK: /* Get the netmask for the interface */ sin->sin_addr.s_addr = ifa->ifa_mask; + ret = 0; break; case SIOCSIFFLAGS: