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:
Barnabás Pőcze 2023-05-31 23:40:09 +02:00 committed by Wim Taymans
parent 212c574821
commit 4e370151b0

View file

@ -212,6 +212,7 @@ struct pw_node_info *pw_node_info_merge(struct pw_node_info *info,
}
info->n_params = n_params;
for (; i < info->n_params; i++) {
spa_zero(info->params[i]);
info->params[i].id = update->params[i].id;
info->params[i].flags = update->params[i].flags;
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;
for (; i < info->n_params; i++) {
spa_zero(info->params[i]);
info->params[i].id = update->params[i].id;
info->params[i].flags = update->params[i].flags;
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;
for (; i < info->n_params; i++) {
spa_zero(info->params[i]);
info->params[i].id = update->params[i].id;
info->params[i].flags = update->params[i].flags;
info->params[i].user = 1;