Skip to content

Commit 70160d3

Browse files
apocelipesCarterLi
authored andcommitted
fix(DiskIO, PhysicalDisk): fix readlink
1 parent 600f6c7 commit 70160d3

File tree

2 files changed

+10
-4
lines changed

2 files changed

+10
-4
lines changed

src/detection/diskio/diskio_linux.c

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,11 @@ const char* ffDiskIOGetIoCounters(FFlist* result, FFDiskIOOptions* options)
2323
char pathSysBlock[PATH_MAX];
2424
snprintf(pathSysBlock, PATH_MAX, "/sys/block/%s", devName);
2525

26-
char pathSysDeviceReal[PATH_MAX] = "";
27-
readlink(pathSysBlock, pathSysDeviceReal, sizeof(pathSysDeviceReal) - 1);
26+
char pathSysDeviceReal[PATH_MAX];
27+
ssize_t pathLength = readlink(pathSysBlock, pathSysDeviceReal, sizeof(pathSysDeviceReal) - 1);
28+
if (pathLength < 0)
29+
continue;
30+
pathSysDeviceReal[pathLength] = '\0';
2831

2932
if (strstr(pathSysDeviceReal, "/virtual/")) // virtual device
3033
continue;

src/detection/physicaldisk/physicaldisk_linux.c

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,11 @@ const char* ffDetectPhysicalDisk(FFlist* result, FFPhysicalDiskOptions* options)
2323
char pathSysBlock[PATH_MAX];
2424
snprintf(pathSysBlock, PATH_MAX, "/sys/block/%s", devName);
2525

26-
char pathSysDeviceReal[PATH_MAX] = "";
27-
readlink(pathSysBlock, pathSysDeviceReal, sizeof(pathSysDeviceReal) - 1);
26+
char pathSysDeviceReal[PATH_MAX];
27+
ssize_t pathLength = readlink(pathSysBlock, pathSysDeviceReal, sizeof(pathSysDeviceReal) - 1);
28+
if (pathLength < 0)
29+
continue;
30+
pathSysDeviceReal[pathLength] = '\0';
2831

2932
if (strstr(pathSysDeviceReal, "/virtual/")) // virtual device
3033
continue;

0 commit comments

Comments
 (0)