Re: [PATCH] samples: bpf: fix: seg fault with NULL pointer arg
On Sat, Dec 1, 2018 at 1:07 PM Daniel T. Lee wrote: > > When NULL pointer accidentally passed to write_kprobe_events, > due to strlen(NULL), segmentation fault happens. > Changed code returns -1 to deal with this situation. > > Bug issued with Smatch, static analysis. > > Signed-off-by: Daniel T. Lee > --- > samples/bpf/bpf_load.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/samples/bpf/bpf_load.c b/samples/bpf/bpf_load.c > index 434ea34a5954..c670bd2200d2 100644 > --- a/samples/bpf/bpf_load.c > +++ b/samples/bpf/bpf_load.c > @@ -58,7 +58,9 @@ static int write_kprobe_events(const char *val) > { > int fd, ret, flags; > > - if ((val != NULL) && (val[0] == '\0')) > + if (val == NULL) > + return -1; > + else if ((val != NULL) && (val[0] == '\0')) We only need + else if (val[0] == '\0') right? Thanks, Song
[PATCH] samples: bpf: fix: seg fault with NULL pointer arg
When NULL pointer accidentally passed to write_kprobe_events, due to strlen(NULL), segmentation fault happens. Changed code returns -1 to deal with this situation. Bug issued with Smatch, static analysis. Signed-off-by: Daniel T. Lee --- samples/bpf/bpf_load.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/samples/bpf/bpf_load.c b/samples/bpf/bpf_load.c index 434ea34a5954..c670bd2200d2 100644 --- a/samples/bpf/bpf_load.c +++ b/samples/bpf/bpf_load.c @@ -58,7 +58,9 @@ static int write_kprobe_events(const char *val) { int fd, ret, flags; - if ((val != NULL) && (val[0] == '\0')) + if (val == NULL) + return -1; + else if ((val != NULL) && (val[0] == '\0')) flags = O_WRONLY | O_TRUNC; else flags = O_WRONLY | O_APPEND; -- 2.17.1