On 05/18/2011 04:21 AM, Matthias Bolte wrote:
Add invalid argument checks for params and nparams to the public API
and remove the from the drivers (e.g. xend).
Add subset handling to libxl and test drivers.
@@ -5092,6 +5092,12 @@ virDomainSetSchedulerParameters(virDomainPtr
domain,
virDispatchError(NULL);
return -1;
}
+
+ if (params == NULL || nparams < 0) {
So this documents that nparams should be in the closed range [1, max]...
@@ -2683,20 +2683,19 @@ static int
testDomainSetSchedulerParams(virDomainPtr domain,
goto cleanup;
}
- if (nparams != 1) {
- testError(VIR_ERR_INVALID_ARG, "nparams");
- goto cleanup;
- }
- if (STRNEQ(params[0].field, "weight")) {
- testError(VIR_ERR_INVALID_ARG, "field");
- goto cleanup;
- }
- if (params[0].type != VIR_DOMAIN_SCHED_FIELD_UINT) {
- testError(VIR_ERR_INVALID_ARG, "type");
- goto cleanup;
+ for (i = 0; i < nparams; i++) {
+ if (STRNEQ(params[i].field, "weight")) {
Hmm, this change lets us pass an array of two separate weight changes,
the last one wins, whereas prepatch the maximum was 1, so you could not
pass two duplicate weights.
+++ b/src/xen/xen_hypervisor.c
@@ -1364,10 +1364,9 @@ xenHypervisorSetSchedulerParameters(virDomainPtr domain,
return -1;
}
- if ((nparams == 0) || (params == NULL)) {
- virXenErrorFunc(VIR_ERR_INVALID_ARG, __FUNCTION__,
- "Noparameters given", 0);
- return(-1);
+ if (nparams == 0) {
+ /* nothing to do, exit early */
+ return 0;
Given the public check that nparams is not less than 1, this is now dead
code.
--
Eric Blake eblake(a)redhat.com +1-801-349-2682
Libvirt virtualization library
http://libvirt.org