mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-10-31 22:25:38 -04:00
json: allocate one extra byte for the \0
This commit is contained in:
parent
f891324e25
commit
579e8a4ea6
4 changed files with 6 additions and 5 deletions
|
|
@ -71,7 +71,7 @@ static void expect_string(struct spa_json *it, const char *str)
|
||||||
char *s;
|
char *s;
|
||||||
spa_assert((len = spa_json_next(it, &value)) > 0);
|
spa_assert((len = spa_json_next(it, &value)) > 0);
|
||||||
check_type(TYPE_STRING, value, len);
|
check_type(TYPE_STRING, value, len);
|
||||||
s = alloca(len);
|
s = alloca(len+1);
|
||||||
spa_json_parse_string(value, len, s);
|
spa_json_parse_string(value, len, s);
|
||||||
spa_assert(strcmp(s, str) == 0);
|
spa_assert(strcmp(s, str) == 0);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -168,7 +168,7 @@ static int parse_modules(struct data *d, const char *str)
|
||||||
if (spa_json_is_container(aval, alen))
|
if (spa_json_is_container(aval, alen))
|
||||||
alen = spa_json_container_len(&it[2], aval, alen);
|
alen = spa_json_container_len(&it[2], aval, alen);
|
||||||
|
|
||||||
args = malloc(alen);
|
args = malloc(alen + 1);
|
||||||
spa_json_parse_string(aval, alen, args);
|
spa_json_parse_string(aval, alen, args);
|
||||||
} else if (strcmp(arg, "flags") == 0) {
|
} else if (strcmp(arg, "flags") == 0) {
|
||||||
flags = strndup(aval, alen);
|
flags = strndup(aval, alen);
|
||||||
|
|
@ -249,7 +249,8 @@ static int parse_objects(struct data *d, const char *str)
|
||||||
if (strcmp(arg, "args") == 0) {
|
if (strcmp(arg, "args") == 0) {
|
||||||
if (spa_json_is_container(aval, alen))
|
if (spa_json_is_container(aval, alen))
|
||||||
alen = spa_json_container_len(&it[2], aval, alen);
|
alen = spa_json_container_len(&it[2], aval, alen);
|
||||||
args = malloc(alen);
|
|
||||||
|
args = malloc(alen + 1);
|
||||||
spa_json_parse_string(aval, alen, args);
|
spa_json_parse_string(aval, alen, args);
|
||||||
} else if (strcmp(arg, "flags") == 0) {
|
} else if (strcmp(arg, "flags") == 0) {
|
||||||
flags = strndup(aval, alen);
|
flags = strndup(aval, alen);
|
||||||
|
|
|
||||||
|
|
@ -60,7 +60,7 @@ static bool find_match(struct spa_json *arr, struct pw_properties *props)
|
||||||
if (spa_json_is_null(value, len)) {
|
if (spa_json_is_null(value, len)) {
|
||||||
success = str == NULL;
|
success = str == NULL;
|
||||||
} else {
|
} else {
|
||||||
spa_json_parse_string(value, SPA_MIN(len, 1024), val);
|
spa_json_parse_string(value, SPA_MIN(len, 1023), val);
|
||||||
value = val;
|
value = val;
|
||||||
len = strlen(val);
|
len = strlen(val);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1616,7 +1616,7 @@ static int json_to_pod(struct spa_pod_builder *b, uint32_t id,
|
||||||
spa_pod_builder_none(b);
|
spa_pod_builder_none(b);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
char *val = alloca(len);
|
char *val = alloca(len+1);
|
||||||
spa_json_parse_string(value, len, val);
|
spa_json_parse_string(value, len, val);
|
||||||
switch (info->parent) {
|
switch (info->parent) {
|
||||||
case SPA_TYPE_Id:
|
case SPA_TYPE_Id:
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue