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:
parent
db05f93727
commit
299650f1e3
@ -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) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user