diff --git a/WHATS_NEW b/WHATS_NEW index 5938a994b..2dea99cbd 100644 --- a/WHATS_NEW +++ b/WHATS_NEW @@ -1,5 +1,6 @@ Version 2.02.135 - ==================================== + Issue error if external_device_info_source=udev and udev db record incomplete. Fix passing of 32bit values through daemons (mostly lvmlockd). Use local memory pool for whole alloc_handle manipulation. Add missing pointer validation after dm_get_next_target(). diff --git a/lib/device/dev-ext.c b/lib/device/dev-ext.c index 8f2024e92..22e9a6dda 100644 --- a/lib/device/dev-ext.c +++ b/lib/device/dev-ext.c @@ -60,6 +60,12 @@ static struct dev_ext *_dev_ext_get_udev(struct device *dev) if (!(udev_device = udev_device_new_from_devnum(udev, 'b', dev->dev))) return_NULL; + if (!udev_device_get_is_initialized(udev_device)) { + /* Timeout or some other udev db inconsistency! */ + log_error("Udev database has incomplete information about device %s.", dev_name(dev)); + return NULL; + } + dev->ext.handle = (void *) udev_device; return &dev->ext; #else