Received: by 2002:ac0:b08d:0:0:0:0:0 with SMTP id l13csp4350171imc; Mon, 25 Feb 2019 03:26:23 -0800 (PST) X-Google-Smtp-Source: AHgI3IbnxAeSjxjCx1ojqrYnD0v2386VlpH+qU0pvmzJJwH+jj/2zZD7SxMGvqKRPAGlgpjfG5Ub X-Received: by 2002:a17:902:6bc7:: with SMTP id m7mr20216710plt.106.1551093983056; Mon, 25 Feb 2019 03:26:23 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1551093983; cv=none; d=google.com; s=arc-20160816; b=SI/d4A4/eV8LPrTHdI1cQfR+/EmYBpXniwOO45/Smr0NX5Zoh/mkjVw6bkLPOQU6QK MIfyxhIu530VvaYUGM5C9ZoERom4HrL73PPyFE1mJeMHp5W4gJ4A8yaodHygbsXuEce3 Lj8LykORK7ppy2CtDPdkAks0pIHQFWKiBLiCv71dDYctrCUTWwYvcalGg0yhxAe5s8PY zzyUJnU6CyNgpIaG9eRs1Lr/rFsahEcY3AaDXjfmzB+HJi8g9El6cFd+z48anMXaBlqF GlPUpiCUGmPadLlMQa9wWnmZfeBum37bcCiZz06k4LtcEbUhPONgXSCHfzoJukSIZh2M Qp4Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :dkim-signature; bh=+x9NY/g/oFDY/DpQbYmhnQBjuw/unnswRPtci/btBgA=; b=lv0dM/qEAi9Piu+IQPAbmFvxXjCvDmxTjWBrU6NDHttLOJUyIMCdoBc13SSy1hETrK qr5QwOfY7O8po+YLOytU+WBtuDL9LhXiS+5pV6T22IN+E9QTpj1I4AXg+YUjCQNtnsvp jQC5yoobLCoBFiVHBjBEoGvZqvqHItQJMGfJ0sCd48X8lZHj+hi6eDFgf7v87wjlvhJm sCHidZZOmbF2zgr4uZtzTgSP5p6XAGpLDR3qmaTDx+rwP4t1z7V9BMJY6X84JlF5WqCk upliNkpELDh1Uc+IqOl50jRJOupxyg+49b1t/BKlbUYSt9Q6miEeZ6wFwixGgtqJDBUY 0WiA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=eqN+xhbo; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id z186si8914205pgd.477.2019.02.25.03.26.07; Mon, 25 Feb 2019 03:26:23 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=eqN+xhbo; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726834AbfBYLZr (ORCPT + 99 others); Mon, 25 Feb 2019 06:25:47 -0500 Received: from mail-pf1-f196.google.com ([209.85.210.196]:42506 "EHLO mail-pf1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726752AbfBYLZq (ORCPT ); Mon, 25 Feb 2019 06:25:46 -0500 Received: by mail-pf1-f196.google.com with SMTP id n74so4361043pfi.9; Mon, 25 Feb 2019 03:25:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=+x9NY/g/oFDY/DpQbYmhnQBjuw/unnswRPtci/btBgA=; b=eqN+xhbo41A2PWT/69Hpsm3XMVOW1xTuUfdUzk+tBVhXdMANTESTJ2ikuxKidQYtaY bwRt1Lq1CpATWrW864L5/mlXTY7XqR2ZQ8nQcI0WdQBrEXaEY5TTLQGiOX1abNO36REc aDsQq+WBaoNzGD7LM6rIGoUZe8EkBuwrbADk/KClMgodn4sn3x0sqgSbQ6FjBSgfIY6Y bXLTNvD8g2hrBXXMK6HVnusH8+BlF8b/RAkfz9YKl1tQ3PbH8ggEST3nNWZEX34xSm+s inSS5AsD+wYQSkv6Zi2IefEPLYiAoW4f3+2Hnc0PWIMQLbFy7tAc6loP+eLMoMZ87564 aOXA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=+x9NY/g/oFDY/DpQbYmhnQBjuw/unnswRPtci/btBgA=; b=H/8UdigpsClpE64RrEz8FdGzUKDFditJM22lm+nA57pM1SAT6YkddIzPQwLxOrqXQs gIt5VJfJ1GVS44MthtP3cJ1oHZ62TmcJzGf+cYaaFvGCJ+wu/gfCrmX2DsN7F8QRLpNf V9DJkW7ObP7HkKVffSPjON+ZkZ9kyWOBGVie5qUfcaptu8VX+0NCpJ962KdliGLZXFnS HUFKgLSO9jXlN1AMwyfVuVbIv4k0/gQhVbQ0QJZzQEFg1YvcJEHx1QjJZ1797VG3oqj8 HSsAREkgKTOyNbBb5wXdHHuSWMAOJiPHe5CMzzJnoEe+ZRalM6/B5q+gpaT79Lc3qbUH huLg== X-Gm-Message-State: AHQUAub/NPHiLQ7R463frtn6fBARY+wmj+FHTwWmUnqB5nurpR48F7iY VB9Z29BOyXTW0x1p45PHkCBQDNc+ X-Received: by 2002:a63:cd06:: with SMTP id i6mr6305638pgg.267.1551093945562; Mon, 25 Feb 2019 03:25:45 -0800 (PST) Received: from localhost ([209.132.188.80]) by smtp.gmail.com with ESMTPSA id u26sm11221518pfn.166.2019.02.25.03.25.44 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 25 Feb 2019 03:25:44 -0800 (PST) From: Xin Long To: linux-kernel@vger.kernel.org, network dev , linux-sctp@vger.kernel.org Cc: davem@davemloft.net, Marcelo Ricardo Leitner , Neil Horman Subject: [PATCH net] sctp: get sctphdr by offset in sctp_compute_cksum Date: Mon, 25 Feb 2019 19:25:37 +0800 Message-Id: <2aee76766861ac9e46b7acf123d5d6e8f2adf8e0.1551093937.git.lucien.xin@gmail.com> X-Mailer: git-send-email 2.1.0 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org sctp_hdr(skb) only works when skb->transport_header is set properly. But in the path of nf_conntrack_in: sctp_packet() -> sctp_error() skb->transport_header is not guaranteed to be right value for sctp. It will cause to fail to check the checksum for sctp packets. So fix it by using offset, which is always right in all places. Fixes: e6d8b64b34aa ("net: sctp: fix and consolidate SCTP checksumming code") Reported-by: Li Shuang Signed-off-by: Xin Long --- include/net/sctp/checksum.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/net/sctp/checksum.h b/include/net/sctp/checksum.h index 32ee65a..1c6e6c0 100644 --- a/include/net/sctp/checksum.h +++ b/include/net/sctp/checksum.h @@ -61,7 +61,7 @@ static inline __wsum sctp_csum_combine(__wsum csum, __wsum csum2, static inline __le32 sctp_compute_cksum(const struct sk_buff *skb, unsigned int offset) { - struct sctphdr *sh = sctp_hdr(skb); + struct sctphdr *sh = (struct sctphdr *)(skb->data + offset); const struct skb_checksum_ops ops = { .update = sctp_csum_update, .combine = sctp_csum_combine, -- 2.1.0