diff options
| author | Daniel T. Lee <[email protected]> | 2018-12-03 10:39:30 +0000 |
|---|---|---|
| committer | Daniel Borkmann <[email protected]> | 2018-12-03 22:58:03 +0000 |
| commit | d59dd69d5576d699d7d3f5da0b4738c3a36d0133 (patch) | |
| tree | e514889dba3908fda5eec6762540f06aca89262f | |
| parent | bpf: fix documentation for eBPF helpers (diff) | |
| download | kernel-d59dd69d5576d699d7d3f5da0b4738c3a36d0133.tar.gz kernel-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 <[email protected]>
Acked-by: Song Liu <[email protected]>
Signed-off-by: Daniel Borkmann <[email protected]>
| -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; |
