Skip to content

Commit

Permalink
utils: add lxc_safe_long()
Browse files Browse the repository at this point in the history
Signed-off-by: Christian Brauner <christian.brauner@canonical.com>
  • Loading branch information
Christian Brauner committed Nov 22, 2016
1 parent 0406409 commit 8c57d93
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 1 deletion.
22 changes: 21 additions & 1 deletion src/lxc/utils.c
Expand Up @@ -2007,7 +2007,7 @@ int lxc_safe_uint(const char *numstr, unsigned int *converted)
if (uli > UINT_MAX)
return -ERANGE;

*converted = (unsigned)uli;
*converted = (unsigned int)uli;
return 0;
}

Expand All @@ -2030,3 +2030,23 @@ int lxc_safe_int(const char *numstr, int *converted)
*converted = (int)sli;
return 0;
}

int lxc_safe_long(const char *numstr, long int *converted)
{
char *err = NULL;
signed long int sli;

errno = 0;
sli = strtol(numstr, &err, 0);
if (errno > 0)
return -errno;

if (!err || err == numstr || *err != '\0')
return -EINVAL;

if (sli > LONG_MAX)
return -ERANGE;

*converted = sli;
return 0;
}
1 change: 1 addition & 0 deletions src/lxc/utils.h
Expand Up @@ -320,5 +320,6 @@ bool task_blocking_signal(pid_t pid, int signal);
/* Helper functions to parse numbers. */
int lxc_safe_uint(const char *numstr, unsigned int *converted);
int lxc_safe_int(const char *numstr, int *converted);
int lxc_safe_long(const char *numstr, long int *converted);

#endif /* __LXC_UTILS_H */

0 comments on commit 8c57d93

Please sign in to comment.