All of lore.kernel.org
 help / color / mirror / Atom feed
From: "liujian (CE)" <liujian56@huawei.com>
To: Stanislav Fomichev <sdf@google.com>
Cc: John Fastabend <john.fastabend@gmail.com>,
	Martin KaFai Lau <kafai@fb.com>,
	"ast@kernel.org" <ast@kernel.org>,
	"daniel@iogearbox.net" <daniel@iogearbox.net>,
	"andrii@kernel.org" <andrii@kernel.org>,
	"songliubraving@fb.com" <songliubraving@fb.com>,
	"yhs@fb.com" <yhs@fb.com>,
	"kpsingh@kernel.org" <kpsingh@kernel.org>,
	"davem@davemloft.net" <davem@davemloft.net>,
	"kuba@kernel.org" <kuba@kernel.org>,
	"netdev@vger.kernel.org" <netdev@vger.kernel.org>,
	"bpf@vger.kernel.org" <bpf@vger.kernel.org>
Subject: RE: [PATCH bpf-next] net: Use skb->len to check the validity of the parameters in bpf_skb_load_bytes
Date: Thu, 17 Mar 2022 14:08:04 +0000	[thread overview]
Message-ID: <ed30a1fb4f8245568bb8f5c02cc19860@huawei.com> (raw)
In-Reply-To: <CAKH8qBuBoyJqSEBX+2iG4b7C7tXPZUtVX6qZysrwddT3LE9ieg@mail.gmail.com>



> -----Original Message-----
> From: Stanislav Fomichev [mailto:sdf@google.com]
> Sent: Wednesday, March 16, 2022 11:09 PM
> To: liujian (CE) <liujian56@huawei.com>
> Cc: John Fastabend <john.fastabend@gmail.com>; Martin KaFai Lau
> <kafai@fb.com>; ast@kernel.org; daniel@iogearbox.net; andrii@kernel.org;
> songliubraving@fb.com; yhs@fb.com; kpsingh@kernel.org;
> davem@davemloft.net; kuba@kernel.org; netdev@vger.kernel.org;
> bpf@vger.kernel.org
> Subject: Re: [PATCH bpf-next] net: Use skb->len to check the validity of the
> parameters in bpf_skb_load_bytes
> 
> On Wed, Mar 16, 2022 at 6:08 AM liujian (CE) <liujian56@huawei.com> wrote:
> >
> >
> >
> > > -----Original Message-----
> > > From: John Fastabend [mailto:john.fastabend@gmail.com]
> > > Sent: Wednesday, March 16, 2022 12:00 PM
> > > To: liujian (CE) <liujian56@huawei.com>; Martin KaFai Lau
> > > <kafai@fb.com>
> > > Cc: ast@kernel.org; daniel@iogearbox.net; andrii@kernel.org;
> > > songliubraving@fb.com; yhs@fb.com; john.fastabend@gmail.com;
> > > kpsingh@kernel.org; davem@davemloft.net; kuba@kernel.org;
> > > sdf@google.com; netdev@vger.kernel.org; bpf@vger.kernel.org
> > > Subject: RE: [PATCH bpf-next] net: Use skb->len to check the
> > > validity of the parameters in bpf_skb_load_bytes
> > >
> > > liujian (CE) wrote:
> > > >
> > > >
> > > > > -----Original Message-----
> > > > > From: Martin KaFai Lau [mailto:kafai@fb.com]
> > > > > Sent: Wednesday, March 16, 2022 3:58 AM
> > > > > To: liujian (CE) <liujian56@huawei.com>
> > > > > Cc: ast@kernel.org; daniel@iogearbox.net; andrii@kernel.org;
> > > > > songliubraving@fb.com; yhs@fb.com; john.fastabend@gmail.com;
> > > > > kpsingh@kernel.org; davem@davemloft.net; kuba@kernel.org;
> > > > > sdf@google.com; netdev@vger.kernel.org; bpf@vger.kernel.org
> > > > > Subject: Re: [PATCH bpf-next] net: Use skb->len to check the
> > > > > validity of the parameters in bpf_skb_load_bytes
> > > > >
> > > > > On Tue, Mar 15, 2022 at 08:39:16PM +0800, Liu Jian wrote:
> > > > > > The data length of skb frags + frag_list may be greater than
> > > > > > 0xffff, so here use skb->len to check the validity of the parameters.
> > > > > What is the use case that needs to look beyond 0xffff ?
> > >
> > > > I use sockmap with strparser, the stm->strp.offset (the begin of
> > > > one application layer protocol message) maybe beyond 0xffff, but i
> > > > need load the message head to do something.
> > >
> > > This would explain skb_load_bytes but not the other two right? Also
> > > if we
> > Yes, I just see that these two functions have the same judgment.
> > > are doing this why not just remove those two checks in
> > > flow_dissector_load() I think skb_header_pointer() does duplicate
> checks.
> > > Please check.
> > Yes, skb_header_pointer() have checked as below, and I will send v2 to
> remove 0xffff check.
> > ----skb_header_pointer
> > -------- __skb_header_pointer
> > ------------skb_copy_bits
> > ---------------- if (offset > (int)skb->len - len)
> > --------------------goto fault;
> >
> > Thank you~
> 
> Do we need to have at least "offset <= 0x7fffffff" check? IOW, do we need
> to enforce the unsignedness of the offset? Or does skb_header_pointer et
> all properly work with the negative offsets?
Yes, skb_header_pointer can not handle the negative offset.
I sent a new patch. Please help review it again. Thank you.
https://patchwork.kernel.org/project/netdevbpf/patch/20220317135940.358774-1-liujian56@huawei.com/

      reply	other threads:[~2022-03-17 14:08 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-03-15 12:39 [PATCH bpf-next] net: Use skb->len to check the validity of the parameters in bpf_skb_load_bytes Liu Jian
2022-03-15 19:58 ` Martin KaFai Lau
2022-03-16  1:09   ` liujian (CE)
2022-03-16  4:00     ` John Fastabend
2022-03-16 13:08       ` liujian (CE)
2022-03-16 15:09         ` Stanislav Fomichev
2022-03-17 14:08           ` liujian (CE) [this message]

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=ed30a1fb4f8245568bb8f5c02cc19860@huawei.com \
    --to=liujian56@huawei.com \
    --cc=andrii@kernel.org \
    --cc=ast@kernel.org \
    --cc=bpf@vger.kernel.org \
    --cc=daniel@iogearbox.net \
    --cc=davem@davemloft.net \
    --cc=john.fastabend@gmail.com \
    --cc=kafai@fb.com \
    --cc=kpsingh@kernel.org \
    --cc=kuba@kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=sdf@google.com \
    --cc=songliubraving@fb.com \
    --cc=yhs@fb.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.