summaryrefslogtreecommitdiff
path: root/src/basic/parse-util.c
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2018-03-21 22:31:40 +0100
committerSven Eden <yamakuzure@gmx.net>2018-08-24 16:47:08 +0200
commit7cba4007b6b434d222b3f6aa8fe66f0a07db1d2e (patch)
tree668fd7da6eb74bc46b847800993748ac7bd3330a /src/basic/parse-util.c
parentaa2274178348d0b08933595244ac6de0cf6e284c (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.c5
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)