util-ebpf: better error handling of map unlink

pull/3952/head
Eric Leblond 7 years ago committed by Victor Julien
parent b952b32a26
commit 2ffd3ad2b7

@ -88,13 +88,26 @@ static void BpfMapsInfoFree(void *bpf)
for (i = 0; i < bpfinfo->last; i ++) {
if (bpfinfo->array[i].name) {
if (bpfinfo->array[i].to_unlink) {
char pinnedpath[1024];
snprintf(pinnedpath, sizeof(pinnedpath),
char pinnedpath[PATH_MAX];
int ret = snprintf(pinnedpath, sizeof(pinnedpath),
"/sys/fs/bpf/suricata-%s-%s",
bpfinfo->array[i].iface,
bpfinfo->array[i].name);
/* Unlink the pinned entry */
unlink(pinnedpath);
if (ret > 0) {
/* Unlink the pinned entry */
ret = unlink(pinnedpath);
if (ret == -1) {
int error = errno;
SCLogWarning(SC_ERR_SYSCALL,
"Unable to remove %s: %s (%d)",
pinnedpath,
strerror(error),
error);
}
} else {
SCLogWarning(SC_ERR_SPRINTF, "Unable to remove map %s",
bpfinfo->array[i].name);
}
}
SCFree(bpfinfo->array[i].name);
}

Loading…
Cancel
Save