mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-10-29 05:40:27 -04:00
json: empty string should not give a valid number
This commit is contained in:
parent
b868ec36c5
commit
947d15a60a
2 changed files with 18 additions and 2 deletions
|
|
@ -238,7 +238,7 @@ static inline int spa_json_parse_float(const char *val, int len, float *result)
|
||||||
{
|
{
|
||||||
char *end;
|
char *end;
|
||||||
*result = strtof(val, &end);
|
*result = strtof(val, &end);
|
||||||
return end == val + len;
|
return len > 0 && end == val + len;
|
||||||
}
|
}
|
||||||
static inline bool spa_json_is_float(const char *val, int len)
|
static inline bool spa_json_is_float(const char *val, int len)
|
||||||
{
|
{
|
||||||
|
|
@ -259,7 +259,7 @@ static inline int spa_json_parse_int(const char *val, int len, int *result)
|
||||||
{
|
{
|
||||||
char *end;
|
char *end;
|
||||||
*result = strtol(val, &end, 0);
|
*result = strtol(val, &end, 0);
|
||||||
return end == val + len;
|
return len > 0 && end == val + len;
|
||||||
}
|
}
|
||||||
static inline bool spa_json_is_int(const char *val, int len)
|
static inline bool spa_json_is_int(const char *val, int len)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -223,6 +223,20 @@ PWTEST(json_overflow)
|
||||||
return PWTEST_PASS;
|
return PWTEST_PASS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
PWTEST(json_float)
|
||||||
|
{
|
||||||
|
float v;
|
||||||
|
pwtest_int_eq(spa_json_parse_float("", 0, &v), 0);
|
||||||
|
return PWTEST_PASS;
|
||||||
|
}
|
||||||
|
|
||||||
|
PWTEST(json_int)
|
||||||
|
{
|
||||||
|
int v;
|
||||||
|
pwtest_int_eq(spa_json_parse_int("", 0, &v), 0);
|
||||||
|
return PWTEST_PASS;
|
||||||
|
}
|
||||||
|
|
||||||
PWTEST_SUITE(spa_json)
|
PWTEST_SUITE(spa_json)
|
||||||
{
|
{
|
||||||
pwtest_add(json_abi, PWTEST_NOARG);
|
pwtest_add(json_abi, PWTEST_NOARG);
|
||||||
|
|
@ -230,6 +244,8 @@ PWTEST_SUITE(spa_json)
|
||||||
pwtest_add(json_encode, PWTEST_NOARG);
|
pwtest_add(json_encode, PWTEST_NOARG);
|
||||||
pwtest_add(json_array, PWTEST_NOARG);
|
pwtest_add(json_array, PWTEST_NOARG);
|
||||||
pwtest_add(json_overflow, PWTEST_NOARG);
|
pwtest_add(json_overflow, PWTEST_NOARG);
|
||||||
|
pwtest_add(json_float, PWTEST_NOARG);
|
||||||
|
pwtest_add(json_int, PWTEST_NOARG);
|
||||||
|
|
||||||
return PWTEST_PASS;
|
return PWTEST_PASS;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue