1
0
mirror of https://github.com/systemd/systemd.git synced 2025-02-14 05:57:40 +03:00

udev-builtin: fix return value of udev_builtin_hwdb()

This fixes a bug introduced by d354690e7d0429338cdd1c2cfe1fdd08fc53da9e.
Also, this adds more debug logs.
This commit is contained in:
Yu Watanabe 2018-10-24 02:42:02 +09:00
parent ec2e8c3a62
commit b0db44fe15

View File

@ -9,6 +9,7 @@
#include "sd-hwdb.h"
#include "alloc-util.h"
#include "device-util.h"
#include "hwdb-util.h"
#include "parse-util.h"
#include "string-util.h"
@ -159,17 +160,28 @@ static int builtin_hwdb(sd_device *dev, int argc, char *argv[], bool test) {
}
/* query a specific key given as argument */
if (argv[optind])
return udev_builtin_hwdb_lookup(dev, prefix, argv[optind], filter, test);
if (argv[optind]) {
r = udev_builtin_hwdb_lookup(dev, prefix, argv[optind], filter, test);
if (r < 0)
return log_device_debug_errno(dev, r, "Failed to lookup hwdb: %m");
if (r == 0)
return log_device_debug_errno(dev, ENOENT, "No entry found from hwdb: %m");
return r;
}
/* read data from another device than the device we will store the data */
if (device) {
r = sd_device_new_from_device_id(&srcdev, device);
if (r < 0)
return r;
return log_device_debug_errno(dev, r, "Failed to create sd_device object '%s': %m", device);
}
return udev_builtin_hwdb_search(dev, srcdev, subsystem, prefix, filter, test);
r = udev_builtin_hwdb_search(dev, srcdev, subsystem, prefix, filter, test);
if (r < 0)
return log_device_debug_errno(dev, r, "Failed to lookup hwdb: %m");
if (r == 0)
return log_device_debug_errno(dev, ENOENT, "No entry found from hwdb: %m");
return r;
}
/* called at udev startup and reload */