mirror of
https://gitlab.freedesktop.org/pipewire/pipewire
synced 2024-10-04 15:10:20 +00:00
json: empty string should not give a valid number
This commit is contained in:
parent
b868ec36c5
commit
947d15a60a
|
@ -238,7 +238,7 @@ static inline int spa_json_parse_float(const char *val, int len, float *result)
|
|||
{
|
||||
char *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)
|
||||
{
|
||||
|
@ -259,7 +259,7 @@ static inline int spa_json_parse_int(const char *val, int len, int *result)
|
|||
{
|
||||
char *end;
|
||||
*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)
|
||||
{
|
||||
|
|
|
@ -223,6 +223,20 @@ PWTEST(json_overflow)
|
|||
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_add(json_abi, PWTEST_NOARG);
|
||||
|
@ -230,6 +244,8 @@ PWTEST_SUITE(spa_json)
|
|||
pwtest_add(json_encode, PWTEST_NOARG);
|
||||
pwtest_add(json_array, PWTEST_NOARG);
|
||||
pwtest_add(json_overflow, PWTEST_NOARG);
|
||||
pwtest_add(json_float, PWTEST_NOARG);
|
||||
pwtest_add(json_int, PWTEST_NOARG);
|
||||
|
||||
return PWTEST_PASS;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue