mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-11-04 13:30:12 -05:00
pipewire: introspect: do not leave spa_param_infos uninitialized
`pw_reallocarray()` leaves the newly allocated storage (if any)
uninitialized, so fill the bytes of the new `spa_param_info` objects
with zeros in `pw_{node,port,device}_info_merge()` to avoid handing
out pointers to uninitialized storage.
This commit is contained in:
parent
212c574821
commit
4e370151b0
1 changed files with 3 additions and 0 deletions
|
|
@ -212,6 +212,7 @@ struct pw_node_info *pw_node_info_merge(struct pw_node_info *info,
|
||||||
}
|
}
|
||||||
info->n_params = n_params;
|
info->n_params = n_params;
|
||||||
for (; i < info->n_params; i++) {
|
for (; i < info->n_params; i++) {
|
||||||
|
spa_zero(info->params[i]);
|
||||||
info->params[i].id = update->params[i].id;
|
info->params[i].id = update->params[i].id;
|
||||||
info->params[i].flags = update->params[i].flags;
|
info->params[i].flags = update->params[i].flags;
|
||||||
info->params[i].user = 1;
|
info->params[i].user = 1;
|
||||||
|
|
@ -285,6 +286,7 @@ struct pw_port_info *pw_port_info_merge(struct pw_port_info *info,
|
||||||
}
|
}
|
||||||
info->n_params = n_params;
|
info->n_params = n_params;
|
||||||
for (; i < info->n_params; i++) {
|
for (; i < info->n_params; i++) {
|
||||||
|
spa_zero(info->params[i]);
|
||||||
info->params[i].id = update->params[i].id;
|
info->params[i].id = update->params[i].id;
|
||||||
info->params[i].flags = update->params[i].flags;
|
info->params[i].flags = update->params[i].flags;
|
||||||
info->params[i].user = 1;
|
info->params[i].user = 1;
|
||||||
|
|
@ -448,6 +450,7 @@ struct pw_device_info *pw_device_info_merge(struct pw_device_info *info,
|
||||||
}
|
}
|
||||||
info->n_params = n_params;
|
info->n_params = n_params;
|
||||||
for (; i < info->n_params; i++) {
|
for (; i < info->n_params; i++) {
|
||||||
|
spa_zero(info->params[i]);
|
||||||
info->params[i].id = update->params[i].id;
|
info->params[i].id = update->params[i].id;
|
||||||
info->params[i].flags = update->params[i].flags;
|
info->params[i].flags = update->params[i].flags;
|
||||||
info->params[i].user = 1;
|
info->params[i].user = 1;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue