chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
volume_id: also add readable check to probe_all()
[elogind.git]
/
udev_rules_parse.c
diff --git
a/udev_rules_parse.c
b/udev_rules_parse.c
index 81c24b9cc10f254c778878340a100c1e20e250a0..9e435819f0893e2969cbeb05f976f3ed21eb2ec2 100644
(file)
--- a/
udev_rules_parse.c
+++ b/
udev_rules_parse.c
@@
-469,6
+469,11
@@
static int add_to_rules(struct udev_rules *rules, char *line, const char *filena
}
if (strncasecmp(key, "TEST", sizeof("TEST")-1) == 0) {
}
if (strncasecmp(key, "TEST", sizeof("TEST")-1) == 0) {
+ if (operation != KEY_OP_MATCH &&
+ operation != KEY_OP_NOMATCH) {
+ err("invalid TEST operation");
+ goto invalid;
+ }
attr = get_key_attribute(key + sizeof("TEST")-1);
if (attr != NULL)
rule->test_mode_mask = strtol(attr, NULL, 8);
attr = get_key_attribute(key + sizeof("TEST")-1);
if (attr != NULL)
rule->test_mode_mask = strtol(attr, NULL, 8);
@@
-757,11
+762,10
@@
int udev_rules_init(struct udev_rules *rules, int resolve_names)
if (name_base == NULL)
continue;
if (name_base == NULL)
continue;
- if (strcmp(name_base, dyn_base) > 0) {
- list_move_tail(&dyn_loop->node, &name_loop->node);
+ if (strcmp(name_base, dyn_base) > 0)
break;
break;
- }
}
}
+ list_move_tail(&dyn_loop->node, &name_loop->node);
}
/* parse list of files */
}
/* parse list of files */
@@
-787,3
+791,4
@@
void udev_rules_cleanup(struct udev_rules *rules)
rules->buf = NULL;
}
}
rules->buf = NULL;
}
}
+