udevd: refuse devices which do not have ACTION property

This commit is contained in:
Yu Watanabe
2019-01-12 09:32:20 +09:00
parent 33ad742a84
commit e0b7a5d151
+7 -7
View File
@@ -587,8 +587,8 @@ static void event_run(Manager *manager, struct event *event) {
static int event_queue_insert(Manager *manager, sd_device *dev) {
_cleanup_(sd_device_unrefp) sd_device *clone = NULL;
const char *val, *action;
struct event *event;
const char *val;
uint64_t seqnum;
int r;
@@ -613,6 +613,11 @@ static int event_queue_insert(Manager *manager, sd_device *dev) {
if (seqnum == 0)
return -EINVAL;
/* Refuse devices do not have ACTION property. */
r = sd_device_get_property_value(dev, "ACTION", &action);
if (r < 0)
return r;
/* Save original device to restore the state on failures. */
r = device_shallow_clone(dev, &clone);
if (r < 0)
@@ -642,12 +647,7 @@ static int event_queue_insert(Manager *manager, sd_device *dev) {
LIST_APPEND(event, manager->events, event);
if (DEBUG_LOGGING) {
if (sd_device_get_property_value(dev, "ACTION", &val) < 0)
val = NULL;
log_device_debug(dev, "Device (SEQNUM=%"PRIu64", ACTION=%s) is queued", seqnum, strnull(val));
}
log_device_debug(dev, "Device (SEQNUM=%"PRIu64", ACTION=%s) is queued", seqnum, action);
return 0;
}