Skip to content

Commit f997000

Browse files
ebpf dns: better error handling
- Avoid crashes if the module is malformed. - Better error handling.
1 parent 4522339 commit f997000

File tree

1 file changed

+11
-8
lines changed

1 file changed

+11
-8
lines changed

daemon/dns/ebpfhook.go

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -158,27 +158,30 @@ func ListenerEbpf(ebpfModPath string) error {
158158
urg, err := ex.Uretprobe("gethostbyname", ebpfMod.URProbeGethostByname, nil)
159159
if err != nil {
160160
log.Error("[eBPF DNS] uretprobe__gethostbyname: %s", err)
161+
} else {
162+
defer urg.Close()
163+
probesAttached++
161164
}
162-
defer urg.Close()
163-
probesAttached++
164165

165166
up, err := ex.Uprobe("getaddrinfo", ebpfMod.UProbeGetAddrinfo, nil)
166167
if err != nil {
167168
log.Error("[eBPF DNS] uprobe__getaddrinfo: %s", err)
169+
} else {
170+
defer up.Close()
171+
probesAttached++
168172
}
169-
defer up.Close()
170-
probesAttached++
171173

172174
urp, err := ex.Uretprobe("getaddrinfo", ebpfMod.URProbeGetAddrinfo, nil)
173175
if err != nil {
174176
log.Error("[eBPF-DNS] uretprobe__getaddrinfo: %s", err)
177+
} else {
178+
defer urp.Close()
179+
probesAttached++
175180
}
176-
defer urp.Close()
177-
probesAttached++
178181

179182
if probesAttached == 0 {
180-
log.Warning("[eBPF DNS]: Failed to find symbols for uprobes.")
181-
return errors.New("Failed to find symbols for uprobes")
183+
log.Warning("[eBPF DNS]: Failed to attach uprobes.")
184+
return errors.New("Failed to attach uprobes")
182185
}
183186

184187
// --------------

0 commit comments

Comments
 (0)