linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: menglong8.dong@gmail.com
To: kuba@kernel.org
Cc: nhorman@tuxdriver.com, davem@davemloft.net, edumazet@google.com,
	pabeni@redhat.com, yoshfuji@linux-ipv6.org, dsahern@kernel.org,
	imagedong@tencent.com, kafai@fb.com, talalahmad@google.com,
	keescook@chromium.org, asml.silence@gmail.com,
	willemb@google.com, vasily.averin@linux.dev,
	ilias.apalodimas@linaro.org, luiz.von.dentz@intel.com,
	linux-kernel@vger.kernel.org, netdev@vger.kernel.org
Subject: [PATCH net-next v3 0/4] net: skb: check the boundrary of skb drop reason
Date: Fri, 13 May 2022 11:03:35 +0800	[thread overview]
Message-ID: <20220513030339.336580-1-imagedong@tencent.com> (raw)

From: Menglong Dong <imagedong@tencent.com>

In the commit 1330b6ef3313 ("skb: make drop reason booleanable"),
SKB_NOT_DROPPED_YET is added to the enum skb_drop_reason, which makes
the invalid drop reason SKB_NOT_DROPPED_YET can leak to the kfree_skb
tracepoint. Once this happen (it happened, as 4th patch says), it can
cause NULL pointer in drop monitor and result in kernel panic.

Therefore, check the boundrary of drop reason in both kfree_skb_reason
(2th patch) and drop monitor (1th patch) to prevent such case happens
again.

Meanwhile, fix the invalid drop reason passed to kfree_skb_reason() in
tcp_v4_rcv() and tcp_v6_rcv().

Changes since v2:
1/4 - don't reset the reason and print the debug warning only (Jakub
      Kicinski)
4/4 - remove new lines between tags

Changes since v1:
- consider tcp_v6_rcv() in the 4th patch


Menglong Dong (4):
  net: dm: check the boundary of skb drop reasons
  net: skb: check the boundrary of drop reason in kfree_skb_reason()
  net: skb: change the definition SKB_DR_SET()
  net: tcp: reset 'drop_reason' to NOT_SPCIFIED in tcp_v{4,6}_rcv()

 include/linux/skbuff.h  | 3 ++-
 net/core/drop_monitor.c | 2 +-
 net/core/skbuff.c       | 2 ++
 net/ipv4/tcp_ipv4.c     | 1 +
 net/ipv6/tcp_ipv6.c     | 1 +
 5 files changed, 7 insertions(+), 2 deletions(-)

-- 
2.36.1


             reply	other threads:[~2022-05-13  3:04 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-05-13  3:03 menglong8.dong [this message]
2022-05-13  3:03 ` [PATCH net-next v3 1/4] net: dm: check the boundary of skb drop reasons menglong8.dong
2022-05-13  3:03 ` [PATCH net-next v3 2/4] net: skb: check the boundrary of drop reason in kfree_skb_reason() menglong8.dong
2022-05-13  3:03 ` [PATCH net-next v3 3/4] net: skb: change the definition SKB_DR_SET() menglong8.dong
2022-05-13  3:03 ` [PATCH net-next v3 4/4] net: tcp: reset 'drop_reason' to NOT_SPCIFIED in tcp_v{4,6}_rcv() menglong8.dong
2022-05-19 15:48   ` Jakub Kicinski
2022-05-20  1:46     ` Menglong Dong
2022-05-20  2:09       ` Jakub Kicinski
2022-05-20  2:18         ` Jakub Kicinski
2022-05-20  2:39           ` Menglong Dong
2022-05-16 10:00 ` [PATCH net-next v3 0/4] net: skb: check the boundrary of skb drop reason patchwork-bot+netdevbpf

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220513030339.336580-1-imagedong@tencent.com \
    --to=menglong8.dong@gmail.com \
    --cc=asml.silence@gmail.com \
    --cc=davem@davemloft.net \
    --cc=dsahern@kernel.org \
    --cc=edumazet@google.com \
    --cc=ilias.apalodimas@linaro.org \
    --cc=imagedong@tencent.com \
    --cc=kafai@fb.com \
    --cc=keescook@chromium.org \
    --cc=kuba@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=luiz.von.dentz@intel.com \
    --cc=netdev@vger.kernel.org \
    --cc=nhorman@tuxdriver.com \
    --cc=pabeni@redhat.com \
    --cc=talalahmad@google.com \
    --cc=vasily.averin@linux.dev \
    --cc=willemb@google.com \
    --cc=yoshfuji@linux-ipv6.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).