http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=526365
EOF
},
{
+ desc => "GOTO label does not exist",
+ subsys => "block",
+ devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
+ exp_name => "right",
+ rules => <<EOF
+KERNEL=="sda1", GOTO="does-not-exist"
+KERNEL=="sda1", NAME="right",
+LABEL="exists"
+EOF
+ },
+ {
desc => "NAME compare test",
subsys => "block",
devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
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);
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: