]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
udev-rules: use parse_uid() or parse_gid() 11746/head
authorYu Watanabe <watanabe.yu+github@gmail.com>
Mon, 18 Feb 2019 03:18:56 +0000 (12:18 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Mon, 18 Feb 2019 03:22:54 +0000 (12:22 +0900)
src/udev/udev-rules.c

index 4d755ae9bcd26f7c8380e0359499c379d388d2dc..ce787786a66ae5f80c4c4050e86944384e35fae9 100644 (file)
@@ -1334,13 +1334,11 @@ static void add_rule(UdevRules *rules, char *line,
 
                 } else if (streq(key, "OWNER")) {
                         uid_t uid;
-                        char *endptr;
 
                         if (op == OP_REMOVE)
                                 LOG_AND_RETURN("Invalid %s operation", key);
 
-                        uid = strtoul(value, &endptr, 10);
-                        if (endptr[0] == '\0')
+                        if (parse_uid(value, &uid) >= 0)
                                 r = rule_add_key(&rule_tmp, TK_A_OWNER_ID, op, NULL, &uid);
                         else if (rules->resolve_name_timing == RESOLVE_NAME_EARLY && !strchr("$%", value[0])) {
                                 uid = add_uid(rules, value);
@@ -1358,13 +1356,11 @@ static void add_rule(UdevRules *rules, char *line,
 
                 } else if (streq(key, "GROUP")) {
                         gid_t gid;
-                        char *endptr;
 
                         if (op == OP_REMOVE)
                                 LOG_AND_RETURN("Invalid %s operation", key);
 
-                        gid = strtoul(value, &endptr, 10);
-                        if (endptr[0] == '\0')
+                        if (parse_gid(value, &gid) >= 0)
                                 r = rule_add_key(&rule_tmp, TK_A_GROUP_ID, op, NULL, &gid);
                         else if ((rules->resolve_name_timing == RESOLVE_NAME_EARLY) && !strchr("$%", value[0])) {
                                 gid = add_gid(rules, value);