diff options
author | Daniel T. Lee <danieltimlee@gmail.com> | 2018-12-03 11:39:30 +0100 |
---|---|---|
committer | Daniel Borkmann <daniel@iogearbox.net> | 2018-12-03 23:58:03 +0100 |
commit | d59dd69d5576d699d7d3f5da0b4738c3a36d0133 (patch) | |
tree | e514889dba3908fda5eec6762540f06aca89262f | |
parent | bpf: fix documentation for eBPF helpers (diff) | |
download | linux-d59dd69d5576d699d7d3f5da0b4738c3a36d0133.tar.xz linux-d59dd69d5576d699d7d3f5da0b4738c3a36d0133.zip |
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 <danieltimlee@gmail.com>
Acked-by: Song Liu <songliubraving@fb.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
-rw-r--r-- | samples/bpf/bpf_load.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/samples/bpf/bpf_load.c b/samples/bpf/bpf_load.c index 434ea34a5954..eae7b635343d 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[0] == '\0') flags = O_WRONLY | O_TRUNC; else flags = O_WRONLY | O_APPEND; |