summaryrefslogtreecommitdiff
path: root/source3/utils
diff options
context:
space:
mode:
Diffstat (limited to 'source3/utils')
-rw-r--r--source3/utils/net_idmap.c24
1 files changed, 24 insertions, 0 deletions
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[] = {