From 04c486d3db4c064ebb74caed31700c561a0be810 Mon Sep 17 00:00:00 2001 From: Carter Li Date: Sat, 4 Apr 2026 00:29:08 +0800 Subject: [PATCH] PhysicalDisk (SunOS): detects unknown type --- src/detection/physicaldisk/physicaldisk_sunos.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/detection/physicaldisk/physicaldisk_sunos.c b/src/detection/physicaldisk/physicaldisk_sunos.c index 349d59198..994451ac9 100644 --- a/src/detection/physicaldisk/physicaldisk_sunos.c +++ b/src/detection/physicaldisk/physicaldisk_sunos.c @@ -73,8 +73,13 @@ static int walkDevTree(di_node_t node, di_minor_t minor, struct FFWalkTreeBundle } int64_t* nblocks; - if (di_prop_lookup_int64(DDI_DEV_T_ANY, node, "device-nblocks", &nblocks) > 0 && di_prop_lookup_ints(DDI_DEV_T_ANY, node, "device-blksize", &value) > 0) { - device->size = (uint64_t) ((uint64_t) *nblocks * (uint64_t) *value); + if (di_prop_lookup_int64(DDI_DEV_T_ANY, node, "device-nblocks", &nblocks) > 0) { + if (*nblocks == 0) { + device->size = 0; + device->type |= FF_PHYSICALDISK_TYPE_UNKNOWN; + } else if (di_prop_lookup_ints(DDI_DEV_T_ANY, node, "device-blksize", &value) > 0) { + device->size = (uint64_t) ((uint64_t) *nblocks * (uint64_t) *value); + } } }