in pkg/maps/loader.go [609:637]
func (m *BpfMap) GetMapFromPinPath(pinPath string) (BpfMapInfo, error) {
if len(pinPath) == 0 {
return BpfMapInfo{}, fmt.Errorf("invalid pinPath")
}
cPath := []byte(pinPath + "\x00")
objInfo := BpfObjGet{
pathname: uintptr(unsafe.Pointer(&cPath[0])),
}
mapFD, err := objInfo.BpfGetObject()
if err != nil {
log.Errorf("failed to get object")
return BpfMapInfo{}, err
}
bpfMapInfo, err := GetBPFmapInfo(mapFD)
if err != nil {
log.Errorf("failed to get map Info for FD - %d", mapFD)
return bpfMapInfo, err
}
err = unix.Close(int(mapFD))
if err != nil {
log.Infof("Failed to close but return the mapinfo")
}
return bpfMapInfo, nil
}