]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
uid-range: use parse_uid_range()
authorYu Watanabe <watanabe.yu+github@gmail.com>
Fri, 16 Sep 2022 01:23:43 +0000 (10:23 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Fri, 16 Sep 2022 11:48:53 +0000 (20:48 +0900)
src/basic/uid-range.c

index 630bf42f92e1ef691f0a2012847bd4a3b3e540b1..f7a9a070c72305e77191bf3e27343b7284d74225 100644 (file)
@@ -109,41 +109,18 @@ int uid_range_add(UidRange **p, size_t *n, uid_t start, uid_t nr) {
 }
 
 int uid_range_add_str(UidRange **p, size_t *n, const char *s) {
-        uid_t start, nr;
-        const char *t;
+        uid_t start, end;
         int r;
 
         assert(p);
         assert(n);
         assert(s);
 
-        t = strchr(s, '-');
-        if (t) {
-                char *b;
-                uid_t end;
-
-                b = strndupa_safe(s, t - s);
-                r = parse_uid(b, &start);
-                if (r < 0)
-                        return r;
-
-                r = parse_uid(t+1, &end);
-                if (r < 0)
-                        return r;
-
-                if (end < start)
-                        return -EINVAL;
-
-                nr = end - start + 1;
-        } else {
-                r = parse_uid(s, &start);
-                if (r < 0)
-                        return r;
-
-                nr = 1;
-        }
+        r = parse_uid_range(s, &start, &end);
+        if (r < 0)
+                return r;
 
-        return uid_range_add(p, n, start, nr);
+        return uid_range_add(p, n, start, end - start + 1);
 }
 
 int uid_range_next_lower(const UidRange *p, size_t n, uid_t *uid) {