From d0d731375a3a84a133439952aaa0b064cd12e3cd Mon Sep 17 00:00:00 2001 From: mzz2017 <2017@duck.com> Date: Wed, 8 Mar 2023 16:52:32 +0800 Subject: [PATCH] fix: utsname needs to distinguish between arm and non-arm --- pkg/ebpf_internal/utsname_int8.go | 18 ++++++++++++++++++ pkg/ebpf_internal/utsname_uint8.go | 18 ++++++++++++++++++ pkg/ebpf_internal/version.go | 10 ---------- 3 files changed, 36 insertions(+), 10 deletions(-) create mode 100644 pkg/ebpf_internal/utsname_int8.go create mode 100644 pkg/ebpf_internal/utsname_uint8.go diff --git a/pkg/ebpf_internal/utsname_int8.go b/pkg/ebpf_internal/utsname_int8.go new file mode 100644 index 0000000..8c76327 --- /dev/null +++ b/pkg/ebpf_internal/utsname_int8.go @@ -0,0 +1,18 @@ +//go:build !(arm || arm64 || arm64be || armbe) + +/* + * SPDX-License-Identifier: AGPL-3.0-only + * Copyright (c) 2023, v2rayA Organization + */ + +package internal + +// utsnameToString converts the utsname to a string and returns it. +func utsnameToString(unameArray [65]int8) string { + var byteString [65]byte + var indexLength int + for ; unameArray[indexLength] != 0; indexLength++ { + byteString[indexLength] = uint8(unameArray[indexLength]) + } + return string(byteString[:indexLength]) +} \ No newline at end of file diff --git a/pkg/ebpf_internal/utsname_uint8.go b/pkg/ebpf_internal/utsname_uint8.go new file mode 100644 index 0000000..0bd20f4 --- /dev/null +++ b/pkg/ebpf_internal/utsname_uint8.go @@ -0,0 +1,18 @@ +//go:build arm || arm64 || arm64be || armbe + +/* + * SPDX-License-Identifier: AGPL-3.0-only + * Copyright (c) 2023, v2rayA Organization + */ + +package internal + +// utsnameToString converts the utsname to a string and returns it. +func utsnameToString(unameArray [65]uint8) string { + var byteString [65]byte + var indexLength int + for ; unameArray[indexLength] != 0; indexLength++ { + byteString[indexLength] = unameArray[indexLength] + } + return string(byteString[:indexLength]) +} \ No newline at end of file diff --git a/pkg/ebpf_internal/version.go b/pkg/ebpf_internal/version.go index bd59dbc..6888acd 100644 --- a/pkg/ebpf_internal/version.go +++ b/pkg/ebpf_internal/version.go @@ -90,16 +90,6 @@ func (v Version) Kernel() uint32 { return uint32(uint8(v[0]))<<16 | uint32(uint8(v[1]))<<8 | uint32(uint8(s)) } -// utsnameToString converts the utsname to a string and returns it. -func utsnameToString(unameArray [65]int8) string { - var byteString [65]byte - var indexLength int - for ; unameArray[indexLength] != 0; indexLength++ { - byteString[indexLength] = uint8(unameArray[indexLength]) - } - return string(byteString[:indexLength]) -} - // KernelVersion returns the version of the currently running kernel. func KernelVersion() (Version, error) { kernelVersion.once.Do(func() {