* [PATCH] lib: do not call memcpy with sz zero and null pointer
@ 2022-09-07 15:05 Henning Schild
2022-09-21 13:06 ` Thomas Monjalon
0 siblings, 1 reply; 3+ messages in thread
From: Henning Schild @ 2022-09-07 15:05 UTC (permalink / raw)
To: Konstantin Ananyev; +Cc: dev, Henning Schild
There is no point in such a call and UBSan complains about a call to
memcpy with a null pointer as second arg.
When building with -Db_sanitize=undefined, Clang gives the following
warning
../lib/bpf/bpf_load.c:37:20: runtime error: null pointer passed as
argument 2, which is declared to never be null
A check of the sz before calling memcpy fixes that.
Signed-off-by: Henning Schild <henning.schild@siemens.com>
---
lib/bpf/bpf_load.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/lib/bpf/bpf_load.c b/lib/bpf/bpf_load.c
index 0c4ac7be6c55..48d3d80ac3e3 100644
--- a/lib/bpf/bpf_load.c
+++ b/lib/bpf/bpf_load.c
@@ -34,7 +34,8 @@ bpf_load(const struct rte_bpf_prm *prm)
memcpy(&bpf->prm, prm, sizeof(bpf->prm));
- memcpy(buf + bsz, prm->xsym, xsz);
+ if (xsz)
+ memcpy(buf + bsz, prm->xsym, xsz);
memcpy(buf + bsz + xsz, prm->ins, insz);
bpf->prm.xsym = (void *)(buf + bsz);
--
2.35.1
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] lib: do not call memcpy with sz zero and null pointer
2022-09-07 15:05 [PATCH] lib: do not call memcpy with sz zero and null pointer Henning Schild
@ 2022-09-21 13:06 ` Thomas Monjalon
2022-09-21 13:57 ` Henning Schild
0 siblings, 1 reply; 3+ messages in thread
From: Thomas Monjalon @ 2022-09-21 13:06 UTC (permalink / raw)
To: Henning Schild; +Cc: Konstantin Ananyev, dev
07/09/2022 17:05, Henning Schild:
> There is no point in such a call and UBSan complains about a call to
> memcpy with a null pointer as second arg.
>
> When building with -Db_sanitize=undefined, Clang gives the following
> warning
> ../lib/bpf/bpf_load.c:37:20: runtime error: null pointer passed as
> argument 2, which is declared to never be null
>
> A check of the sz before calling memcpy fixes that.
>
> Signed-off-by: Henning Schild <henning.schild@siemens.com>
> ---
> --- a/lib/bpf/bpf_load.c
> +++ b/lib/bpf/bpf_load.c
> @@ -34,7 +34,8 @@ bpf_load(const struct rte_bpf_prm *prm)
>
> memcpy(&bpf->prm, prm, sizeof(bpf->prm));
>
> - memcpy(buf + bsz, prm->xsym, xsz);
> + if (xsz)
> + memcpy(buf + bsz, prm->xsym, xsz);*
I assume I can safely change it to
if (xsz > 0)
to comply with the code style.
Applied, thanks.
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] lib: do not call memcpy with sz zero and null pointer
2022-09-21 13:06 ` Thomas Monjalon
@ 2022-09-21 13:57 ` Henning Schild
0 siblings, 0 replies; 3+ messages in thread
From: Henning Schild @ 2022-09-21 13:57 UTC (permalink / raw)
To: Thomas Monjalon; +Cc: Konstantin Ananyev, dev
Am Wed, 21 Sep 2022 15:06:12 +0200
schrieb Thomas Monjalon <thomas@monjalon.net>:
> 07/09/2022 17:05, Henning Schild:
> > There is no point in such a call and UBSan complains about a call to
> > memcpy with a null pointer as second arg.
> >
> > When building with -Db_sanitize=undefined, Clang gives the following
> > warning
> > ../lib/bpf/bpf_load.c:37:20: runtime error: null pointer passed as
> > argument 2, which is declared to never be null
> >
> > A check of the sz before calling memcpy fixes that.
> >
> > Signed-off-by: Henning Schild <henning.schild@siemens.com>
> > ---
> > --- a/lib/bpf/bpf_load.c
> > +++ b/lib/bpf/bpf_load.c
> > @@ -34,7 +34,8 @@ bpf_load(const struct rte_bpf_prm *prm)
> >
> > memcpy(&bpf->prm, prm, sizeof(bpf->prm));
> >
> > - memcpy(buf + bsz, prm->xsym, xsz);
> > + if (xsz)
> > + memcpy(buf + bsz, prm->xsym, xsz);*
>
> I assume I can safely change it to
> if (xsz > 0)
> to comply with the code style.
Sure, thanks!
Henning
>
> Applied, thanks.
>
>
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2022-09-21 13:58 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-09-07 15:05 [PATCH] lib: do not call memcpy with sz zero and null pointer Henning Schild
2022-09-21 13:06 ` Thomas Monjalon
2022-09-21 13:57 ` Henning Schild
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).