chiark / gitweb /
util-lib: add parse_percent_unbounded() for percentages over 100% (#3886)
authorDavid Michael <fedora.dm0@gmail.com>
Thu, 4 Aug 2016 11:09:54 +0000 (04:09 -0700)
committerSven Eden <yamakuzure@gmx.net>
Wed, 5 Jul 2017 06:50:49 +0000 (08:50 +0200)
This permits CPUQuota to accept greater values as documented.

src/basic/parse-util.c
src/basic/parse-util.h

index 77e85f658a9a23f16cb63e72496739631076d7aa..757e5b4127041f0de12136b0600702878eb32b35 100644 (file)
@@ -540,7 +540,7 @@ int parse_fractional_part_u(const char **p, size_t digits, unsigned *res) {
         return 0;
 }
 
-int parse_percent(const char *p) {
+int parse_percent_unbounded(const char *p) {
         const char *pc, *n;
         unsigned v;
         int r;
@@ -553,8 +553,15 @@ int parse_percent(const char *p) {
         r = safe_atou(n, &v);
         if (r < 0)
                 return r;
+
+        return (int) v;
+}
+
+int parse_percent(const char *p) {
+        int v = parse_percent_unbounded(p);
+
         if (v > 100)
                 return -ERANGE;
 
-        return (int) v;
+        return v;
 }
index 1f420c050b9906ba137b440a986be3b405facb11..e9e270904e77ce2aa2d3d0ea6271842cc3785f6f 100644 (file)
@@ -108,4 +108,5 @@ int safe_atod(const char *s, double *ret_d);
 
 int parse_fractional_part_u(const char **s, size_t digits, unsigned *res);
 
+int parse_percent_unbounded(const char *p);
 int parse_percent(const char *p);