From 4e4246a46a062ffa73d4f4bbeecf46b33cfca2d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=80=9A=E6=B4=B2?= Date: Sun, 17 Dec 2023 19:40:24 +0800 Subject: [PATCH] DiskIO (Windows): fix segfault and memleak --- src/detection/diskio/diskio.h | 2 +- src/detection/diskio/diskio_windows.c | 1 + src/modules/diskio/diskio.c | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/detection/diskio/diskio.h b/src/detection/diskio/diskio.h index 1c8c7664f..39e0a1d4a 100644 --- a/src/detection/diskio/diskio.h +++ b/src/detection/diskio/diskio.h @@ -14,10 +14,10 @@ typedef struct FFDiskIOResult FFstrbuf name; FFstrbuf interconnect; FFstrbuf serial; + FFstrbuf devPath; FFDiskIOPhysicalType type; uint64_t size; bool removable; - FFstrbuf devPath; uint64_t bytesRead; uint64_t readCount; uint64_t bytesWritten; diff --git a/src/detection/diskio/diskio_windows.c b/src/detection/diskio/diskio_windows.c index 0c2ed7b72..99149e948 100644 --- a/src/detection/diskio/diskio_windows.c +++ b/src/detection/diskio/diskio_windows.c @@ -82,6 +82,7 @@ const char* ffDiskIOGetIoCounters(FFlist* result, FFDiskIOOptions* options) continue; } + ffStrbufInitWS(&device->devPath, szDevice); ffStrbufInit(&device->serial); if (sdd->SerialNumberOffset != 0) { diff --git a/src/modules/diskio/diskio.c b/src/modules/diskio/diskio.c index f6f7cfe40..8387d0217 100644 --- a/src/modules/diskio/diskio.c +++ b/src/modules/diskio/diskio.c @@ -114,6 +114,7 @@ void ffPrintDiskIO(FFDiskIOOptions* options) ffStrbufDestroy(&dev->name); ffStrbufDestroy(&dev->interconnect); ffStrbufDestroy(&dev->devPath); + ffStrbufDestroy(&dev->serial); } }