From d2c892cd2e6b35898208296522ab83042a0ee28c Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Tue, 1 Oct 2013 23:29:53 +0200 Subject: net idmap: add utility function parse_uint32() Signed-off-by: Volker Lendecke Reviewed-by: Michael Adam --- source3/utils/net_idmap.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'source3/utils') diff --git a/source3/utils/net_idmap.c b/source3/utils/net_idmap.c index 55cde381ae..a6b8592ca0 100644 --- a/source3/utils/net_idmap.c +++ b/source3/utils/net_idmap.c @@ -622,6 +622,30 @@ done: return ret; } +static bool parse_uint32(const char *str, uint32_t *result) +{ + unsigned long val; + char *endptr; + + val = strtoul(str, &endptr, 10); + + if (str == endptr) { + return false; + } + if (*endptr != '\0') { + return false; + } + if ((val == ULONG_MAX) && (errno == ERANGE)) { + return false; + } + if ((val & UINT32_MAX) != val) { + /* overflow */ + return false; + } + *result = val; /* Potential crop */ + return true; +} + static int net_idmap_delete(struct net_context *c, int argc, const char **argv) { struct functable func[] = { -- cgit