From patchwork Sun Mar 12 23:01:37 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hannes Frederic Sowa X-Patchwork-Id: 737914 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3vhGjs6cJTz9s78 for ; Mon, 13 Mar 2017 10:02:41 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=stressinduktion.org header.i=@stressinduktion.org header.b="nm6UBmvp"; dkim=pass (1024-bit key; unprotected) header.d=messagingengine.com header.i=@messagingengine.com header.b="t4isuB8O"; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S935462AbdCLXCj (ORCPT ); Sun, 12 Mar 2017 19:02:39 -0400 Received: from out1-smtp.messagingengine.com ([66.111.4.25]:48852 "EHLO out1-smtp.messagingengine.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S935607AbdCLXCJ (ORCPT ); Sun, 12 Mar 2017 19:02:09 -0400 Received: from compute7.internal (compute7.nyi.internal [10.202.2.47]) by mailout.nyi.internal (Postfix) with ESMTP id 80CB5207AC for ; Sun, 12 Mar 2017 19:02:04 -0400 (EDT) Received: from frontend2 ([10.202.2.161]) by compute7.internal (MEProxy); Sun, 12 Mar 2017 19:02:04 -0400 DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d= stressinduktion.org; h=date:from:in-reply-to:message-id :references:subject:to:x-me-sender:x-me-sender:x-sasl-enc :x-sasl-enc; s=mesmtp; bh=nBwaPNdKuBu4bjJ5eH+42sMfgMg=; b=nm6UBm vpyzefaFQmf84v7PkZ10QEGomQXJLiGd/jvocuEmXktMf3xarob5uDd201AEr1Hg K73+2Z9m/bQOSOs/kwokGhaVthC+CJMtPNV9gxQOCaGoBeNelwc2PEDP02LfA+gw vHcxGssui+XUVzAi3tiU7x1MlydxDJqz6AcWo= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d= messagingengine.com; h=date:from:in-reply-to:message-id :references:subject:to:x-me-sender:x-me-sender:x-sasl-enc :x-sasl-enc; s=smtpout; bh=nBwaPNdKuBu4bjJ5eH+42sMfgMg=; b=t4isu B8OfHjhFQnBy3RVSy7g3xBjbwM1b0t6x53p9GHCgPBVH8PZui9RRLLoC21IaMeqF ZJ6csLeElIqLOIIvixLHEMh8/av2bzU7VtIXjlHnNGvhtFr6mh0v3tssevzGVBNR 6NyJgRVZYVjSNnPYGgefh7zHwAFoY955QTjaBI= X-ME-Sender: X-Sasl-enc: l8F7j1q2AEDIB3VuZZD/ICHchR5meeAIPXjJkhhfnivw 1489359723 Received: from m.localhost.localhost (unknown [213.55.211.72]) by mail.messagingengine.com (Postfix) with ESMTPA id AE60D240CF for ; Sun, 12 Mar 2017 19:02:03 -0400 (EDT) From: Hannes Frederic Sowa To: netdev@vger.kernel.org Subject: [PATCH net-next RFC v1 13/27] afnetns: use inet_allow_bind in inet6_bind Date: Mon, 13 Mar 2017 00:01:37 +0100 Message-Id: <20170312230151.5185-14-hannes@stressinduktion.org> X-Mailer: git-send-email 2.9.3 In-Reply-To: <20170312230151.5185-1-hannes@stressinduktion.org> References: <20170312230151.5185-1-hannes@stressinduktion.org> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Signed-off-by: Hannes Frederic Sowa --- net/ipv6/af_inet6.c | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/net/ipv6/af_inet6.c b/net/ipv6/af_inet6.c index 04db40620ea65c..f9367c507573bc 100644 --- a/net/ipv6/af_inet6.c +++ b/net/ipv6/af_inet6.c @@ -316,8 +316,6 @@ int inet6_bind(struct socket *sock, struct sockaddr *uaddr, int addr_len) /* Check if the address belongs to the host. */ if (addr_type == IPV6_ADDR_MAPPED) { - int chk_addr_ret; - /* Binding to v4-mapped address on a v6-only socket * makes no sense */ @@ -326,18 +324,11 @@ int inet6_bind(struct socket *sock, struct sockaddr *uaddr, int addr_len) goto out; } - /* Reproduce AF_INET checks to make the bindings consistent */ - v4addr = addr->sin6_addr.s6_addr32[3]; - chk_addr_ret = inet_addr_type(net, v4addr); - if (!net->ipv4.sysctl_ip_nonlocal_bind && - !(inet->freebind || inet->transparent) && - v4addr != htonl(INADDR_ANY) && - chk_addr_ret != RTN_LOCAL && - chk_addr_ret != RTN_MULTICAST && - chk_addr_ret != RTN_BROADCAST) { - err = -EADDRNOTAVAIL; + err = inet_allow_bind(sk, addr->sin6_addr.s6_addr32[3]); + if (err < 0) goto out; - } + else + err = 0; } else { if (addr_type != IPV6_ADDR_ANY) { struct net_device *dev = NULL;