From patchwork Tue Jul 17 15:25:47 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rafael Vuijk X-Patchwork-Id: 10529725 X-Patchwork-Delegate: stefan@osg.samsung.com Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id D988E6020A for ; Tue, 17 Jul 2018 15:25:56 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id D0887293CC for ; Tue, 17 Jul 2018 15:25:56 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id C47D6293DB; Tue, 17 Jul 2018 15:25:56 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.8 required=2.0 tests=BAYES_00,DKIM_SIGNED, MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI, T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id EE378293CC for ; Tue, 17 Jul 2018 15:25:55 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729748AbeGQP7D (ORCPT ); Tue, 17 Jul 2018 11:59:03 -0400 Received: from mail-eopbgr20046.outbound.protection.outlook.com ([40.107.2.46]:25328 "EHLO EUR02-VE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1729665AbeGQP7D (ORCPT ); Tue, 17 Jul 2018 11:59:03 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sownet.onmicrosoft.com; s=selector1-sownet-nl; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=/CRLiCkzs+OurhTfxtDxooI/VKckTt1OS1TezPbuuKU=; b=1Q21zPynfrSNTdrz5d+LOUZEbu6BS4yfDJpl7XeShT3T3eS7kgyaBU55347zwyXuxm5ZP09U09JQ7sG3dc5tQOsyombDamvY5Qm8igRNthzeK6ZIR4FyilHDGkL6imszxNPOUus1x3mZXVtVS5GklNKxidbGU5QYuoEkiaE+Z4w= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=r.vuijk@sownet.nl; Received: from Rafael-Mac.intra.sownet.nl (2001:982:c549:1:61c3:7b2c:983:94af) by AM6PR10MB2309.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:50::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.973.16; Tue, 17 Jul 2018 15:25:49 +0000 Date: Tue, 17 Jul 2018 17:25:47 +0200 From: Rafael Vuijk To: Alexander Aring , Jukka Rissanen , linux-wpan@vger.kernel.org, linux-bluetooth@vger.kernel.org Subject: [PATCH 1/2 v2] ieee802154: assembly of 6LoWPAN fragments improvement Message-ID: <20180717152546.GA22664@Rafael-Mac.intra.sownet.nl> MIME-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.10.0 (2018-05-17) X-Originating-IP: [2001:982:c549:1:61c3:7b2c:983:94af] X-ClientProxiedBy: AM4PR0501CA0061.eurprd05.prod.outlook.com (2603:10a6:200:68::29) To AM6PR10MB2309.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:50::14) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 7bf8437c-6f10-4d28-ed2c-08d5ebf993b0 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652040)(7021125)(8989117)(5600053)(711020)(4534165)(7022125)(4603075)(4627221)(201702281549075)(8990107)(7048125)(7024125)(7027125)(7028125)(7023125)(2017052603328)(7153060)(7193020); SRVR:AM6PR10MB2309; X-Microsoft-Exchange-Diagnostics: 1; AM6PR10MB2309; 3:wgKXaR/f2bQ0OhMxC/M2t0ECMFQoWMYXk9d5NnVwmf6gZsAroU7xXcvAI0NoLOeaKklbroKanzPJ6tS5wOI/SymokwAJ/VfujyrbaHF1Ko66tkSiCB19HVYPD9pfo+DIeILeb8UiPf+qHmOuB/4h74EbcKsxioxP/03kYUJnx0CzDWThaah367yJN2N9/hbdkJZ4XoFY9Ygw4QgZBFC+hGzdBtLL0FWfhCjuw2+mavju1PF0+ZFxZAVKAt/BeCdU; 25:jAs1ASwdSFkuKv5JAwKE+cwvBJJceAiqDocmiUsTawm6EIimVjtNwn25S1Mr04HOO5NpugW/2rMTPbCI2zRuPkEcTdbDyHcMN701/l/VrbnwpnYG3YLjojLdOg1ir1NEG/e/kCEKJlEXotFwgr21DPQwJsEnrYy4yCHh/43ZB16V3lngzovTrhYKur5dfkFOYvbaNlQwSKH9JBJ71n94SKjbPpHuNzIdXlw6uzDsUu5zAglbKQefRNP9Dqw3P7AsBqfNiBMcIHv1A4Ur3jwjP2Eqr5RxA76cdb9Siao4JfvTIbRnM2hoPaHxMn4FsFSImzx8rk9Zyx2gQAbjhlOF2Q==; 31:zkhq3JuPF5loShv1dFhVnBowOYTMC7jUn0KkMuoPV8mBflpn8g47C/Z54VQIV/k+9T2L6n5n+qBBqB99YHNEbD8QM2DY/m2l+zYfZdq13fPeEmGfSgg0P5v17Wa2UQ6lvwoEo7//5tstjhAuvJb7bYPreWDH1FrIjXFl3gjgPmIH8Pbqr3uOOU68iyX+hs0KydpFpBcjtt4T6qnKhVLoS8Y7NL2nOqomnKKR8c1QHoY= X-MS-TrafficTypeDiagnostic: AM6PR10MB2309: X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040522)(2401047)(5005006)(8121501046)(93006095)(93001095)(3002001)(10201501046)(3231311)(944501410)(52105095)(149027)(150027)(6041310)(20161123558120)(2016111802025)(20161123560045)(20161123564045)(20161123562045)(6043046)(6072148)(201708071742011)(7699016); SRVR:AM6PR10MB2309; BCL:0; PCL:0; RULEID:; SRVR:AM6PR10MB2309; X-Microsoft-Exchange-Diagnostics: 1; AM6PR10MB2309; 4:VHfnfPF2qfSikjeEt7JvOwdBNpN69KKO6FAQS7za31YBvjfC+b6eC7vhg8r8jIZQwbXT0fwdbigSkythn9RDeE3iYNMiwl15OrTzB5NYGwmVGQ9iasElHHE3MsYeMf9ClKh3FjG0+RNG2q4WC0wN3QxPJGHOkQ0vif3aWJJiaCVaD/wGzOJuPPSa3u+tm9jB4AYQz4fhI5phdlf3loQxq4bdEFXWrLihH+RZJdRsxj4gme39If1gq3OLmv+cfothK11QQTSgKLT11v8+Ywu19Q== X-Forefront-PRVS: 073631BD3D X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(39830400003)(136003)(346002)(376002)(366004)(396003)(189003)(199004)(68736007)(386003)(55016002)(47776003)(74482002)(97736004)(23726003)(58126008)(2906002)(6116002)(1076002)(16586007)(478600001)(305945005)(7736002)(86362001)(316002)(110136005)(53936002)(8676002)(52396003)(7696005)(52116002)(5660300001)(25786009)(8936002)(81156014)(33656002)(81166006)(16526019)(476003)(186003)(50466002)(106356001)(46003)(486006)(105586002)(39060400002)(18370500001); DIR:OUT; SFP:1101; SCL:1; SRVR:AM6PR10MB2309; H:Rafael-Mac.intra.sownet.nl; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; Received-SPF: None (protection.outlook.com: sownet.nl does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; AM6PR10MB2309; 23:1jl6TaeaPzO1SMlyvaw5Qh5TkrGnx5L7Cgmp1BNLu?= =?us-ascii?Q?joBVLN8zFdVOoiMYeMrAYqKQtJ8rbJoRMDi23/H5EA3aQwJJc/5typ9d+/gq?= =?us-ascii?Q?U8+CuI33AutCDmXs8895rgRTW1simeWfqe3M0a3AmyISz08EBR67K0dm1WJc?= =?us-ascii?Q?xjuBN9ED86X1XoZbv0HpEGV8T6a/NCrK9yckE5eDkyYhabJeROP2tFkvzVbf?= =?us-ascii?Q?bpCYHRDWmB8c3W6Z+Q8RBzAFaEWmyQH/EzJjm2mRv4hu8Qoe8hwIuNG0/eF+?= =?us-ascii?Q?zDG/VQW/4oqt6BQoqI44XXYQEuiy8oQOXc7EwzVJaVuyaPwtT2mqP9Aeut+p?= =?us-ascii?Q?Y3SLAXHlINoemGZhfuKiOo1U1OEmEjYiy3dnT8hSldF/FqA3impNsV9BvVt/?= =?us-ascii?Q?u5B+PwTKwATiK90QQ5Mz6zNBq8kyCZ1t1N9Wj4APRx0NN2j/J3TjKEoTEi3R?= =?us-ascii?Q?Txi4esSNC2bWAgyX8DJQhNxuH9J8RIfnQlyk2Gb1SNAfGGrBJY1Q74KYKVEf?= =?us-ascii?Q?ifR9opRXZn8FDc3AqAqlbf8glOtcYcif34v2JYXjf+N/zM1za7NY1/AfgCHT?= =?us-ascii?Q?G5fYrFkRyoNGXOeLNnQipoXOy1rle3xb/vcTE41z0E0iqubOZsy0RFlwwAHN?= =?us-ascii?Q?m9x4E6M7J6O5b1ZSSohFfRqBBscGqWEmHty7OvoLbFMgDAwssLMo4cz7IXyG?= =?us-ascii?Q?K+tcblHmfHeXn0W7aMSlADz1DkIezsRpRzulWwkkJwZhin4OAjZohMqeYi3H?= =?us-ascii?Q?TENveuapd5yShoSRCwe0tPVEYC4N2UwFnaeIKgyT4xj27Yin3iUXwWEPSKke?= =?us-ascii?Q?zpOe7k/hBSmd6IftcHRUrvFzOujOkeywG10AWpGwB4eykLVByzahwn22JvGg?= =?us-ascii?Q?SPvIvc3L3I73f2ReNl1g2BA2DoQYXRy8qiKObcpJ6eTNxyQc0wGvlpgKea71?= =?us-ascii?Q?z3TrqEsECHwK0BucxxlDqA0br4uMxeIDjwaoUxg7rNG1fw47Ymu98kb2JBHn?= =?us-ascii?Q?mN6XwP4ozpgC+0vv/demB7eUNbhOK9syvku8gz5TVH0v0OGri2RjE/nXkrjN?= =?us-ascii?Q?/ix/+xAczUwfDxD6spCbhshz8CB?= X-Microsoft-Antispam-Message-Info: 71iN5nWl1fwIZjEiNzzzLhMmXh+pUhkgl9yz03hIlUFY9U6E4+TY7YNfwozldEAey+t8JqBnj+J9oN4655MCHCMHOX2wco5Xh15cx0E92DCje+sJzoBARt1YvvceaKbZeZPvvxxVZe31Nljj5qJVUE64Q5qRt+j27Jb7PkDRM7meVnu2hVZGUwavRk5ROzEFSz9KNUf54Ta0VMD9tCy+Cfnxj+kA7VlrMB6TirFuUYX8SOFXU0zq+KN6xLRYFhs4jnFCVtfCE58e0R+DuwpeEwgZv3tbAlTn4jlH6a3egJpzBRjCihomGBYKXhIRORMAnfH44zLQz0cdm6Hyhf9T50IjF5m9GZ0tN/BFPvEJbZc= X-Microsoft-Exchange-Diagnostics: 1; AM6PR10MB2309; 6:sWXN4BMOu9PS6bBgFrWu5O6ovGdIpqm7hsZtrojRq2qgnQilX60hGxC+r5+7P0rJhTSHopZUviIU96a5SOhOPUR2CxRmv+lcK89awCtb+6TFx6Y3dyieymK6BkagMzyIL5cTZr7F+E+ySVVcpC+V834/3Rb+Nl75cVPrW0WekUVrcH/D3NFgXAGgSqrxRh2axKMAGE4XZzIb20TbbcRjHsrNMC+/+tIBOA1rmuVrt+MT5Bv2DUxhpPGmt8sNPa17ca4FhEFChkVls8tsqCVcCz93IngHRpsUHUAnSvA/nnlg4WOaWsYkGcCDYNRHDd/x1NvMTY187JC5PEQXo/cTKsOu6TQZzlBCuE5/ZhApLBkP+TdMwGcYvhVAk4lxDSbouMo6LCozhWg3iMokms39aRO4nd3qrZTIIQEEpBTvsRVNqvllf43gxVMlrhFfi+Izp+5opwExYxqN3UbUEMeImQ==; 5:EyGhfWQzxLSOvMVIdsZ2Wm0hC01k7m17EDzyIVaKUmotu9G0HyZG0e60Gfa7j0HaKyMpE6t5hNcuPotAWOfiEBLXrAaGTsDjybYpsAnTjwXMDcWH8gT/FocW6fTlCNfAamyGPkgdhbetwQIeHwZzyMj7MvLT9f7cOsAZc2tSJFc=; 7:/nhS9JAbuTVi8Wvl0af2yyYQE9Vvu05ornd2xZhX9gIYBIitxrjUaq7hla75c1N3t0vJBZDAWWKhiTly111o1jMXVZkEie+ribxpcpeHaiT73zP0D2iHMmcsP48gvqi2E/CEcYB7lblk/8yWc6DvXA0DT2o89qjYfXApCFaib4t2no5FZ/0XNVnx7FtjPocIu+zrpMuoyViEHyc0bTQSqZ+ipHWYLH0ZqpLIGWd/4QsWZymXMeKFQ5zV7nMo1pbJ SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: sownet.nl X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Jul 2018 15:25:49.9102 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 7bf8437c-6f10-4d28-ed2c-08d5ebf993b0 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: b942e044-b452-4fc3-a156-54104fe5c4b6 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR10MB2309 Sender: linux-wpan-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-wpan@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP 6LoWPAN reassembly length check matching first known packet length. Signed-off-by: Rafael Vuijk --- To unsubscribe from this list: send the line "unsubscribe linux-wpan" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html --- ./net/ieee802154/6lowpan/reassembly.c 2018-02-20 11:10:06.000000000 +0100 +++ ./net/ieee802154/6lowpan/reassembly.c 2018-02-21 09:13:29.000000000 +0100 @@ -140,23 +140,14 @@ static int lowpan_frag_queue(struct lowp offset = lowpan_802154_cb(skb)->d_offset << 3; end = lowpan_802154_cb(skb)->d_size; + if (fq->q.len == 0) + fq->q.len = end; + if (fq->q.len != end) + goto err; + /* Is this the final fragment? */ if (offset + skb->len == end) { - /* If we already have some bits beyond end - * or have different end, the segment is corrupted. - */ - if (end < fq->q.len || - ((fq->q.flags & INET_FRAG_LAST_IN) && end != fq->q.len)) - goto err; fq->q.flags |= INET_FRAG_LAST_IN; - fq->q.len = end; - } else { - if (end > fq->q.len) { - /* Some bits beyond end -> corruption. */ - if (fq->q.flags & INET_FRAG_LAST_IN) - goto err; - fq->q.len = end; - } } /* Find out which fragments are in front and at the back of us