mirror of
https://github.com/alsa-project/alsa-lib.git
synced 2025-10-29 05:40:25 -04:00
conf: add safe_strtoll_base() like safe_strtol_base()
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
This commit is contained in:
parent
7ffe3d4162
commit
32d332b786
2 changed files with 9 additions and 6 deletions
|
|
@ -232,6 +232,8 @@ size_t page_align(size_t size);
|
||||||
size_t page_size(void);
|
size_t page_size(void);
|
||||||
size_t page_ptr(size_t object_offset, size_t object_size, size_t *offset, size_t *mmap_offset);
|
size_t page_ptr(size_t object_offset, size_t object_size, size_t *offset, size_t *mmap_offset);
|
||||||
|
|
||||||
|
int safe_strtoll_base(const char *str, long long *val, int base);
|
||||||
|
static inline int safe_strtoll(const char *str, long long *val) { return safe_strtoll_base(str, val, 0); }
|
||||||
int safe_strtol_base(const char *str, long *val, int base);
|
int safe_strtol_base(const char *str, long *val, int base);
|
||||||
static inline int safe_strtol(const char *str, long *val) { return safe_strtol_base(str, val, 0); }
|
static inline int safe_strtol(const char *str, long *val) { return safe_strtol_base(str, val, 0); }
|
||||||
|
|
||||||
|
|
|
||||||
13
src/conf.c
13
src/conf.c
|
|
@ -653,16 +653,17 @@ static int input_stdio_open(snd_input_t **inputp, const char *file,
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int safe_strtoll(const char *str, long long *val)
|
int safe_strtoll_base(const char *str, long long *val, int base)
|
||||||
{
|
{
|
||||||
long long v;
|
char *end;
|
||||||
int endidx;
|
long v;
|
||||||
if (!*str)
|
if (!*str)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
errno = 0;
|
errno = 0;
|
||||||
if (sscanf(str, "%lli%n", &v, &endidx) < 1)
|
v = strtoll(str, &end, base);
|
||||||
return -EINVAL;
|
if (errno)
|
||||||
if (str[endidx])
|
return -errno;
|
||||||
|
if (*end)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
*val = v;
|
*val = v;
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue