mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-22 03:12:22 +00:00
remote_daemon_dispatch: Check for limit properly in remoteDispatchConnectGetAllDomainStats
The return structure is a bit complicated and that's why it is very easy to check for RPC limits incorrectly. The structure is an array of remote_domain_stats_record structures with the limit of REMOTE_DOMAIN_LIST_MAX. The latter structure then poses a different limit on typed params: REMOTE_CONNECT_GET_ALL_DOMAIN_STATS_MAX (which is what we are checking for mistakenly). Signed-off-by: Michal Privoznik <mprivozn@redhat.com> Reviewed-by: Erik Skultety <eskultet@redhat.com> Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
This commit is contained in:
parent
3d1799192d
commit
6763f42eee
@ -6996,15 +6996,15 @@ remoteDispatchConnectGetAllDomainStats(virNetServerPtr server ATTRIBUTE_UNUSED,
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if (nrecords > REMOTE_CONNECT_GET_ALL_DOMAIN_STATS_MAX) {
|
||||
virReportError(VIR_ERR_INTERNAL_ERROR,
|
||||
_("Number of domain stats records is %d, "
|
||||
"which exceeds max limit: %d"),
|
||||
nrecords, REMOTE_CONNECT_GET_ALL_DOMAIN_STATS_MAX);
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if (nrecords) {
|
||||
if (nrecords > REMOTE_DOMAIN_LIST_MAX) {
|
||||
virReportError(VIR_ERR_INTERNAL_ERROR,
|
||||
_("Number of domain stats records is %d, "
|
||||
"which exceeds max limit: %d"),
|
||||
nrecords, REMOTE_DOMAIN_LIST_MAX);
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if (VIR_ALLOC_N(ret->retStats.retStats_val, nrecords) < 0)
|
||||
goto cleanup;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user