mirror of
https://git.kernel.org/pub/scm/network/wireless/iwd.git
synced 2024-12-22 04:32:37 +01:00
json: restrict json_iter_{parse,next} to objects/arrays
json_iter_parse is only meant to work on objects while json_iter_next is only meant to work on arrays. This adds checks in both APIs to ensure they aren't being used incorrectly.
This commit is contained in:
parent
1f91c03bf6
commit
67ded4c2fd
@ -200,6 +200,9 @@ bool json_iter_parse(struct json_iter *iter, enum json_type type, ...)
|
||||
if (iter->start == -1)
|
||||
return false;
|
||||
|
||||
if (c->tokens[iter->start].type != JSMN_OBJECT)
|
||||
return false;
|
||||
|
||||
args = l_queue_new();
|
||||
|
||||
va_start(va, type);
|
||||
@ -427,6 +430,9 @@ bool json_iter_next(struct json_iter *iter)
|
||||
jsmntok_t *t = c->tokens + iter->current;
|
||||
int inc = 1;
|
||||
|
||||
if (c->tokens[iter->start].type != JSMN_ARRAY)
|
||||
return false;
|
||||
|
||||
/*
|
||||
* If this is the initial iteration skip this and just increment
|
||||
* current by 1 since this iterator points to a container which needs to
|
||||
|
Loading…
Reference in New Issue
Block a user