From a984ef9f885a65ad26f92480194672730d4ed0ea Mon Sep 17 00:00:00 2001 From: Tyler Satre Date: Sun, 17 May 2026 16:21:21 -0400 Subject: [PATCH] Build for ARM 64 alpine --- .../zen-internals/zen_internals.go | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/lib/request-processor/vulnerabilities/zen-internals/zen_internals.go b/lib/request-processor/vulnerabilities/zen-internals/zen_internals.go index 4676ad3f..7dfc2ae5 100644 --- a/lib/request-processor/vulnerabilities/zen-internals/zen_internals.go +++ b/lib/request-processor/vulnerabilities/zen-internals/zen_internals.go @@ -25,6 +25,7 @@ import ( "main/globals" "main/log" "main/utils" + "os" "unsafe" ) @@ -35,8 +36,24 @@ type ZenInternalsLibrary struct { var zenLib = &ZenInternalsLibrary{} +func getZenInternalsLibPath() string { + arch := utils.GetArch() + candidates := []string{ + fmt.Sprintf("/opt/aikido-%s/libzen_internals_%s-unknown-linux-musl.so", globals.Version, arch), + fmt.Sprintf("/opt/aikido-%s/libzen_internals_%s-unknown-linux-gnu.so", globals.Version, arch), + } + + for _, candidate := range candidates { + if _, err := os.Stat(candidate); err == nil { + return candidate + } + } + + return candidates[len(candidates)-1] +} + func Init() bool { - zenInternalsLibPath := C.CString(fmt.Sprintf("/opt/aikido-%s/libzen_internals_%s-unknown-linux-gnu.so", globals.Version, utils.GetArch())) + zenInternalsLibPath := C.CString(getZenInternalsLibPath()) defer C.free(unsafe.Pointer(zenInternalsLibPath)) handle := C.dlopen(zenInternalsLibPath, C.RTLD_LAZY)