1
0
mirror of git://sourceware.org/git/lvm2.git synced 2024-12-21 13:34:40 +03:00

Validate udev structures

Avoid using NULL pointers from udev. It seems like some older versions of udev
were improperly returning NULL in some case, so do not silently break here,
and give at least a warning to the user.
This commit is contained in:
Zdenek Kabelac 2012-03-04 17:40:59 +00:00
parent 462de06d96
commit d18c70b4df
3 changed files with 14 additions and 6 deletions

View File

@ -1,6 +1,6 @@
Version 2.02.95 -
================================
Deactivation of failed thin check on thin pool returns success.
Validate udev structures in _insert_udev_dir().
Scan all devices for lvmetad if 'pvscan --cache' used without device list.
Populate lvmcache from lvmetad before displaying PVs in pvscan. (2.02.94)
Suppress incorrect -n pvscan warning now always displayed. (2.02.94)

View File

@ -1,5 +1,6 @@
Version 1.02.74 -
================================
Deactivation of failed thin check on thin pool returns success.
Version 1.02.73 - 3rd March 2012
================================

View File

@ -509,13 +509,20 @@ static int _insert_udev_dir(struct udev *udev, const char *dir)
goto bad;
udev_list_entry_foreach(device_entry, udev_enumerate_get_list_entry(udev_enum)) {
device = udev_device_new_from_syspath(udev, udev_list_entry_get_name(device_entry));
if (!(device = udev_device_new_from_syspath(udev, udev_list_entry_get_name(device_entry)))) {
log_warn("Udev returns NULL device.");
continue;
}
node_name = udev_device_get_devnode(device);
if (!(node_name = udev_device_get_devnode(device)))
log_warn("Udev returns NULL devnode.");
else
r &= _insert(node_name, 0, 0);
udev_list_entry_foreach(symlink_entry, udev_device_get_devlinks_list_entry(device)) {
symlink_name = udev_list_entry_get_name(symlink_entry);
if (!(symlink_name = udev_list_entry_get_name(symlink_entry)))
log_warn("Udev returns NULL name.");
else
r &= _insert(symlink_name, 0, 0);
}