+ /* Compute all goto targets within this file */
+ udev_rules_iter_init(&iter, rules);
+ udev_rules_iter_goto(&iter, start);
+ while((rule = udev_rules_iter_next(&iter))) {
+ if (rule->goto_label.operation != KEY_OP_UNSET) {
+ char *goto_label = &rule->buf[rule->goto_label.val_off];
+
+ dbg(rules->udev, "resolving goto label '%s'\n", goto_label);
+ rule->goto_rule_off = find_label(&iter, goto_label);
+ if (rule->goto_rule_off == 0) {
+ err(rules->udev, "ignore goto to nonexistent label '%s' in '%s'\n",
+ goto_label, filename);
+ rule->goto_rule_off = iter.current;
+ }
+ }
+ }
+