]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
cap-list: check range of numeric value
authorYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 28 Nov 2017 13:06:34 +0000 (22:06 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 28 Nov 2017 13:06:34 +0000 (22:06 +0900)
src/basic/cap-list.c

index 52b2ce800fd458e98912ff1f3bde8751a556eff3..c4557666efda1d4c90f3b0d930357b5c5c5e5d24 100644 (file)
@@ -54,8 +54,12 @@ int capability_from_name(const char *name) {
 
         /* Try to parse numeric capability */
         r = safe_atoi(name, &i);
-        if (r >= 0 && i >= 0)
-                return i;
+        if (r >= 0) {
+                if (i >= 0 && i < (int) ELEMENTSOF(capability_names))
+                        return i;
+                else
+                        return -EINVAL;
+        }
 
         /* Try to parse string capability */
         sc = lookup_capability(name, strlen(name));