chiark / gitweb /
udevd: avoid implicit memset in match_attr()
[elogind.git] / udev / udev-rules.c
index 8c0e1d961b4618c99c05c63f7b5f7f0ab72e0f03..44b26906b48465d8cfe3de3583d14933f8c59223 100644 (file)
@@ -1794,10 +1794,11 @@ static int match_attr(struct udev_rules *rules, struct udev_device *dev, struct
        char attr[UTIL_PATH_SIZE];
        const char *key_name = &rules->buf[cur->key.attr_off];
        const char *key_value = &rules->buf[cur->key.value_off];
-       char value[UTIL_NAME_SIZE] = "";
+       char value[UTIL_NAME_SIZE];
        size_t len;
 
        util_strlcpy(attr, key_name, sizeof(attr));
+       util_strlcpy(value, "", sizeof(value));
        util_resolve_subsys_kernel(event->udev, attr, value, sizeof(value), 1);
        if (value[0] == '\0') {
                const char *val;
@@ -1830,6 +1831,7 @@ int udev_rules_apply_to_event(struct udev_rules *rules, struct udev_event *event
 {
        struct token *cur;
        struct token *rule;
+       enum escape_type esc = ESCAPE_UNSET;
 
        if (rules->tokens == NULL)
                return -1;
@@ -1838,7 +1840,6 @@ int udev_rules_apply_to_event(struct udev_rules *rules, struct udev_event *event
        cur = &rules->tokens[0];
        rule = cur;
        while (cur != NULL && cur->type != TK_END) {
-               enum escape_type esc = ESCAPE_UNSET;
                unsigned int idx;
 
                dump_token(rules, cur);