From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.1 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 86019C282C2 for ; Thu, 7 Feb 2019 15:05:41 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 5614221904 for ; Thu, 7 Feb 2019 15:05:41 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="X1sdqG+T" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726731AbfBGPFk (ORCPT ); Thu, 7 Feb 2019 10:05:40 -0500 Received: from mail-wm1-f67.google.com ([209.85.128.67]:39233 "EHLO mail-wm1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726037AbfBGPFj (ORCPT ); Thu, 7 Feb 2019 10:05:39 -0500 Received: by mail-wm1-f67.google.com with SMTP id f16so187742wmh.4 for ; Thu, 07 Feb 2019 07:05:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id; bh=4y4jz8H7HsDfdoX8Ire3j6PKDs6/NNIFytwKUp30bPo=; b=X1sdqG+TuXRqwET93QX/2dXTePuDGdi0bh6NS7wutsKHNGNSa4RESNRfJ8chlpmsZf OtO1kol+BON5EQMSmOVrQ4at8JkjcxahQGdzAVI4+KP4qVHgGqEoa4IPdtzLSgfW6yGY F4HG/h/DOkfe1uz4bOVzsfgqJHCDGZc2xXJ/RHxPiIiBY44u2bmM1G7IsSg9pV9i8+mt OOqzRQJB68XvKkXj37PXwOSgEAtgWpy28pCHB14Jx95J6rh9VYk6nnmPAO8Vv/jgL36/ dxeN9hpqw7GYAIZVG+yoEMunRlnxcDkOu+zIL+Y0Q4C6SlFJ+stdtlPMs97Cu5MYByBT X/Nw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id; bh=4y4jz8H7HsDfdoX8Ire3j6PKDs6/NNIFytwKUp30bPo=; b=iMtzFH62SDUESViPpm7iXFShWCMQ0hhtD59PiulGNh9wydfypEsOf8BHWyAJniC03V A9wz7RdBFBudthoRzih6fAtmNyvS9KBv+DsSeGz3dREQcsTTUl1fJHbJl8DjrIsOndp3 4n0m3Zxl/j0YJub+SW8CUedVC1k7NnmkdJ3JfW1w9tQbRp+3Qkwd7fq6RMQPcITJrjAG va9cTrSoJdqbB7AzC2tXM2cKz2AWhW54xOxKNogyYVe9EkFjT0jZn5/OP2TzJeIeogm2 IiwJb1w1AY3scshLvxduD/nGWgfJzOGkOpW2PUNsjlERAXM6XeExJo5tqMk8JQvcTo1J UGpg== X-Gm-Message-State: AHQUAuZ2zztBRwlBtAL5Z6IlmwSM0vFAhB4Q9cvxFDrq1T8voSFFfb6G lZCRVy158arODll1PjaDIbF/s8v4 X-Google-Smtp-Source: AHgI3IbAVdZp3iEUkBprRoL1DWb8mZA8CysHKpGhNuaaCddR1d38ZuS6Q/maI660DrDv1aRSovPCNw== X-Received: by 2002:a1c:9ed7:: with SMTP id h206mr7353222wme.28.1549551936754; Thu, 07 Feb 2019 07:05:36 -0800 (PST) Received: from cplx1037.edegem.eu.thmulti.com ([2001:4158:f012:b00:2a10:7bff:fec5:6f08]) by smtp.gmail.com with ESMTPSA id r200sm43706451wmb.36.2019.02.07.07.05.35 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 07 Feb 2019 07:05:36 -0800 (PST) From: Alin Nastac To: netdev@vger.kernel.org Subject: [PATCH] ipv6: fix icmp6_send() route lookup Date: Thu, 7 Feb 2019 16:05:31 +0100 Message-Id: <1549551931-11909-1-git-send-email-alin.nastac@gmail.com> X-Mailer: git-send-email 2.7.4 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Original packet destination address must be used as saddr for the route lookup performed by icmp6_send() even when this address is not local. This fixes the IPv6 router ability to send back destination unreachable ICMPv6 errors for forwarded packets when the route toward the saddr of the original packet is source filtered (e.g. a default route with a "from PD" attribute, where PD is the delegated prefix). Signed-off-by: Alin Nastac --- net/ipv6/icmp.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/net/ipv6/icmp.c b/net/ipv6/icmp.c index bbcdfd2..8f17065 100644 --- a/net/ipv6/icmp.c +++ b/net/ipv6/icmp.c @@ -455,8 +455,7 @@ static void icmp6_send(struct sk_buff *skb, u8 type, u8 code, __u32 info, */ addr_type = ipv6_addr_type(&hdr->daddr); - if (ipv6_chk_addr(net, &hdr->daddr, skb->dev, 0) || - ipv6_chk_acast_addr_src(net, skb->dev, &hdr->daddr)) + if (!force_saddr) saddr = &hdr->daddr; /* -- 2.7.4