mirror of
https://github.com/systemd/systemd
synced 2024-10-15 12:34:37 +00:00
udev: fix parent token handling
This fixes a bug introduced by 03677889f0
.
Fixes #23288.
This commit is contained in:
parent
ad11dd94fd
commit
eba782d59b
|
@ -2425,11 +2425,15 @@ static int udev_rule_apply_parent_token_to_event(
|
|||
UdevRuleToken *head;
|
||||
int r;
|
||||
|
||||
line = rules->current_file->current_line;
|
||||
head = rules->current_file->current_line->current_token;
|
||||
event->dev_parent = event->dev;
|
||||
assert(rules);
|
||||
assert(rules->current_file);
|
||||
assert(event);
|
||||
|
||||
line = ASSERT_PTR(rules->current_file->current_line);
|
||||
head = ASSERT_PTR(rules->current_file->current_line->current_token);
|
||||
event->dev_parent = ASSERT_PTR(event->dev);
|
||||
|
||||
for (;;) {
|
||||
line->current_token = NULL;
|
||||
LIST_FOREACH(tokens, token, head) {
|
||||
if (!token_is_for_parents(token))
|
||||
return true; /* All parent tokens match. */
|
||||
|
@ -2441,8 +2445,8 @@ static int udev_rule_apply_parent_token_to_event(
|
|||
if (r == 0)
|
||||
break;
|
||||
}
|
||||
if (!line->current_token)
|
||||
/* All parent tokens match. But no assign tokens in the line. Hmm... */
|
||||
if (r > 0)
|
||||
/* All parent tokens match, and no more token (except for GOTO) in the line. */
|
||||
return true;
|
||||
|
||||
if (sd_device_get_parent(event->dev_parent, &event->dev_parent) < 0) {
|
||||
|
|
Loading…
Reference in a new issue