From 32939eababa49bd8cf39ed6f13cf23e397a54cbf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=80=9A=E6=B4=B2?= Date: Sun, 27 Oct 2024 12:19:48 +0800 Subject: [PATCH] Uptime (NetBSD): fix invalid result --- src/detection/uptime/uptime_bsd.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/detection/uptime/uptime_bsd.c b/src/detection/uptime/uptime_bsd.c index 47202544a..446a95e25 100644 --- a/src/detection/uptime/uptime_bsd.c +++ b/src/detection/uptime/uptime_bsd.c @@ -6,7 +6,11 @@ const char* ffDetectUptime(FFUptimeResult* result) { + #if __NetBSD__ + struct timespec bootTime; + #else struct timeval bootTime; + #endif size_t bootTimeSize = sizeof(bootTime); if(sysctl( (int[]) {CTL_KERN, KERN_BOOTTIME}, 2, @@ -15,7 +19,11 @@ const char* ffDetectUptime(FFUptimeResult* result) ) != 0) return "sysctl({CTL_KERN, KERN_BOOTTIME}) failed"; + #if __NetBSD__ + result->bootTime = (uint64_t) bootTime.tv_sec * 1000 + (uint64_t) bootTime.tv_nsec / 10000000; + #else result->bootTime = (uint64_t) bootTime.tv_sec * 1000 + (uint64_t) bootTime.tv_usec / 1000; + #endif result->uptime = ffTimeGetNow() - result->bootTime; return NULL;