diff options
author | Lennart Poettering <lennart@poettering.net> | 2018-03-21 22:31:40 +0100 |
---|---|---|
committer | Sven Eden <yamakuzure@gmx.net> | 2018-08-24 16:47:08 +0200 |
commit | 7cba4007b6b434d222b3f6aa8fe66f0a07db1d2e (patch) | |
tree | 668fd7da6eb74bc46b847800993748ac7bd3330a /src/basic/parse-util.c | |
parent | aa2274178348d0b08933595244ac6de0cf6e284c (diff) |
parse-util: similar to safe_atou16_full() add safe_atou_full()
What's good for uint16_t is also good for unsigned.
This is preparation for: #8140
Diffstat (limited to 'src/basic/parse-util.c')
-rw-r--r-- | src/basic/parse-util.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/basic/parse-util.c b/src/basic/parse-util.c index 37eb61479..911447941 100644 --- a/src/basic/parse-util.c +++ b/src/basic/parse-util.c @@ -376,12 +376,13 @@ finish: } -int safe_atou(const char *s, unsigned *ret_u) { +int safe_atou_full(const char *s, unsigned base, unsigned *ret_u) { char *x = NULL; unsigned long l; assert(s); assert(ret_u); + assert(base <= 16); /* strtoul() is happy to parse negative values, and silently * converts them to unsigned values without generating an @@ -394,7 +395,7 @@ int safe_atou(const char *s, unsigned *ret_u) { s += strspn(s, WHITESPACE); errno = 0; - l = strtoul(s, &x, 0); + l = strtoul(s, &x, base); if (errno > 0) return -errno; if (!x || x == s || *x != 0) |