1
0
mirror of https://github.com/systemd/systemd.git synced 2025-03-29 06:50:16 +03:00

udevadm: info - fix info --root --query=name --path= for device without a device node

Subject: Bug#561279: udev: Crash location and first-level cause
Reply-To: Stephen Kitt <steve@sk2.org>, 561279@bugs.debian.org
This commit is contained in:
Kay Sievers 2009-12-24 20:42:02 +01:00
parent db05f93727
commit 299650f1e3

View File

@ -388,23 +388,24 @@ int udevadm_info(struct udev *udev, int argc, char *argv[])
}
switch(query) {
case QUERY_NAME:
case QUERY_NAME: {
const char *node = udev_device_get_devnode(device);
if (node == NULL) {
fprintf(stderr, "no device node found\n");
rc = 5;
goto exit;
}
if (root) {
printf("%s\n", udev_device_get_devnode(device));
} else {
size_t len;
const char *node;
size_t len = strlen(udev_get_dev_path(udev));
len = strlen(udev_get_dev_path(udev));
node = udev_device_get_devnode(device);
if (node == NULL) {
fprintf(stderr, "no device node found\n");
rc = 5;
goto exit;
}
printf("%s\n", &udev_device_get_devnode(device)[len+1]);
printf("%s\n", &udev_device_get_devnode(device)[len+1]);
}
break;
}
case QUERY_SYMLINK:
list_entry = udev_device_get_devlinks_list_entry(device);
while (list_entry != NULL) {