From 4ed321be7a9dcd3df99f3175f03bc45d65989c98 Mon Sep 17 00:00:00 2001 From: Zdenek Kabelac Date: Tue, 22 Jul 2025 20:34:38 +0200 Subject: [PATCH 39/47] dmeventd: check device exists Check first whether the monitored device actually really exists, before resolving its device name. In the case device is not present in DM table, fail _fill_device_data(). (cherry picked from commit 175a80157a2116a64f72e912c04b4a45a03c50f6) --- daemons/dmeventd/dmeventd.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/daemons/dmeventd/dmeventd.c b/daemons/dmeventd/dmeventd.c index 2224ba23e..93dfb9bc0 100644 --- a/daemons/dmeventd/dmeventd.c +++ b/daemons/dmeventd/dmeventd.c @@ -606,11 +606,14 @@ static int _fill_device_data(struct thread_status *ts) if (!dm_task_run(dmt)) goto fail; - free(ts->device.name); - if (!(ts->device.name = strdup(dm_task_get_name(dmt)))) + if (!dm_task_get_info(dmt, &dmi)) goto fail; - if (!dm_task_get_info(dmt, &dmi)) + if (!dmi.exists) + goto fail; + + free(ts->device.name); + if (!(ts->device.name = strdup(dm_task_get_name(dmt)))) goto fail; ts->device.major = dmi.major; -- 2.51.0