Skip to content

Commit 730c566

Browse files
authored
Merge pull request #1818 from nplanel/ebpf-fix-close-module-on-error
eBPF: close module on error
2 parents c4f53a0 + 5d54624 commit 730c566

File tree

1 file changed

+4
-0
lines changed

1 file changed

+4
-0
lines changed

flow/probes/ebpf.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -477,11 +477,13 @@ func (p *EBPFProbesHandler) registerProbe(n *graph.Node, capture *types.Capture,
477477

478478
fmap := module.Map("flow_table")
479479
if fmap == nil {
480+
module.Close()
480481
return fmt.Errorf("Unable to find flow_table map")
481482
}
482483

483484
socketFilter := module.SocketFilter("socket_flow_table")
484485
if socketFilter == nil {
486+
module.Close()
485487
return errors.New("No flow_table socket filter")
486488
}
487489

@@ -492,12 +494,14 @@ func (p *EBPFProbesHandler) registerProbe(n *graph.Node, capture *types.Capture,
492494
rs, err = common.NewRawSocket(ifName, syscall.ETH_P_ALL)
493495
}
494496
if err != nil {
497+
module.Close()
495498
return err
496499
}
497500
fd := rs.GetFd()
498501

499502
if err := elf.AttachSocketFilter(socketFilter, fd); err != nil {
500503
rs.Close()
504+
module.Close()
501505
return fmt.Errorf("Unable to attach socket filter to node: %s", n.ID)
502506
}
503507

0 commit comments

Comments
 (0)