X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=udev_rules_parse.c;h=9166980488fa0362fe8316753dd11fb0d278f35f;hp=02bddbd0a89c6fc9b041d608bcd6a6c7cc032cf6;hb=f7e34eb3e7e8c84cb7ce55ad64e4813e7985936a;hpb=d419e96238f295996f5b8fc1743ab4835f62fcc2 diff --git a/udev_rules_parse.c b/udev_rules_parse.c index 02bddbd0a..916698048 100644 --- a/udev_rules_parse.c +++ b/udev_rules_parse.c @@ -298,7 +298,16 @@ static int add_to_rules(struct udev_rules *rules, char *line, const char *filena err("invalid SUBSYSTEM operation"); goto invalid; } - add_rule_key(rule, &rule->subsystem, operation, value); + /* bus, class, subsystem events should all be the same */ + if (strcmp(value, "subsystem") == 0 || + strcmp(value, "bus") == 0 || + strcmp(value, "class") == 0) { + if (strcmp(value, "bus") == 0 || strcmp(value, "class") == 0) + err("'%s' must be specified as 'subsystem' " + "please fix it in %s:%u", value, filename, lineno); + add_rule_key(rule, &rule->subsystem, operation, "subsystem|class|bus"); + } else + add_rule_key(rule, &rule->subsystem, operation, value); valid = 1; continue; }