Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
libbpftune: bpf open needs to handle errors
we were dereferencing the skel pointer; it may be a error pointer
value so check for this.
  • Loading branch information
alan-maguire committed Jul 11, 2023
commit a6f19c0c786c8e4285158dd71bd9e835c2dfd8f2
17 changes: 10 additions & 7 deletions include/bpftune/libbpftune.h
Original file line number Diff line number Diff line change
Expand Up @@ -147,6 +147,8 @@ void bpftuner_tunables_fini(struct bpftuner *tuner);
tuner->bpf_legacy = bpftuner_bpf_legacy(); \
if (!tuner->bpf_legacy) { \
tuner->skel = __skel = tuner_name##_tuner_bpf__open();\
__err = libbpf_get_error(tuner->skel); \
if (__err) break; \
tuner->skeleton = __skel->skeleton; \
__skel->bss->debug = bpftune_log_level() >= LOG_DEBUG;\
__skel->bss->bpftune_pid = getpid(); \
Expand All @@ -156,6 +158,8 @@ void bpftuner_tunables_fini(struct bpftuner *tuner);
tuner->netns_map = __skel->maps.netns_map; \
} else { \
tuner->skel = __lskel = tuner_name##_tuner_bpf_legacy__open();\
__err = libbpf_get_error(tuner->skel); \
if (__err) break; \
tuner->skeleton = __lskel->skeleton; \
__lskel->bss->debug = bpftune_log_level() >= LOG_DEBUG;\
__lskel->bss->bpftune_learning_rate = bpftune_learning_rate;\
Expand All @@ -164,14 +168,13 @@ void bpftuner_tunables_fini(struct bpftuner *tuner);
tuner->ring_buffer_map = __lskel->maps.ring_buffer_map;\
tuner->netns_map = __lskel->maps.netns_map; \
} \
bpftune_cap_drop(); \
__err = libbpf_get_error(tuner->skel); \
if (__err) { \
bpftune_log_bpf_err(__err, \
#tuner_name " open bpf: %s\n"); \
break; \
} \
} while (0); \
bpftune_cap_drop(); \
if (__err) { \
tuner->skel = NULL; \
bpftuner_bpf_destroy(tuner_name, tuner); \
bpftune_log_bpf_err(__err, #tuner_name " open bpf: %s\n"); \
} \
__err; \
})

Expand Down