X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=udev%2Fudev-rules.c;h=b8b7e52c839f2b93c06c7ee41a726b3fe6e93408;hp=fac418e526a625099d8b96adec4711b50fd2b3fb;hb=0c37798916bc87d72f5f1399d9e050307901db84;hpb=6205f1186e4980544ea425d31770358d1b2579e4 diff --git a/udev/udev-rules.c b/udev/udev-rules.c index fac418e52..b8b7e52c8 100644 --- a/udev/udev-rules.c +++ b/udev/udev-rules.c @@ -1610,6 +1610,7 @@ static int parse_file(struct udev_rules *rules, const char *filename, unsigned s if (strcmp(label, &rules->buf[rules->tokens[j].rule.label_off]) != 0) continue; rules->tokens[i].key.rule_goto = j; + break; } if (rules->tokens[i].key.rule_goto == 0) err(rules->udev, "GOTO '%s' has no matching label in: '%s'\n", label, filename); @@ -2504,6 +2505,8 @@ int udev_rules_apply_to_event(struct udev_rules *rules, struct udev_event *event break; } case TK_A_GOTO: + if (cur->key.rule_goto == 0) + break; cur = &rules->tokens[cur->key.rule_goto]; continue; case TK_A_LAST_RULE: