diff --git a/src/udev/udev-rules.c b/src/udev/udev-rules.c index 9d831a6004..5e7d8d390e 100644 --- a/src/udev/udev-rules.c +++ b/src/udev/udev-rules.c @@ -1014,6 +1014,9 @@ static int parse_token(UdevRules *rules, const char *key, char *attr, UdevRuleOp return log_token_invalid_attr(rules, key); if (op != OP_ASSIGN) return log_token_invalid_op(rules, key); + if (FLAGS_SET(rule_line->type, LINE_HAS_LABEL)) + log_token_warning(rules, "Contains multiple LABEL keys, ignoring LABEL=\"%s\".", + rule_line->label); rule_line->label = value; SET_FLAG(rule_line->type, LINE_HAS_LABEL, true); diff --git a/test/units/testsuite-17.11.sh b/test/units/testsuite-17.11.sh index 9a404781e7..363040c28c 100755 --- a/test/units/testsuite-17.11.sh +++ b/test/units/testsuite-17.11.sh @@ -262,6 +262,19 @@ ${rules}: udev rules check failed EOF assert_1 "${rules}" +cat >"${rules}" <<'EOF' +GOTO="a" +LABEL="a", LABEL="b" +EOF +cat >"${exp}" <"${workdir}/${exp}" cd -