machined: reject invalid class types when registering machines
Follow-up for fbe550738d
This commit is contained in:
@@ -155,6 +155,9 @@ int vl_method_register(sd_varlink *link, sd_json_variant *parameters, sd_varlink
|
||||
if (r != 0)
|
||||
return r;
|
||||
|
||||
if (!IN_SET(machine->class, MACHINE_CONTAINER, MACHINE_VM))
|
||||
return sd_varlink_error_invalid_parameter_name(link, "class");
|
||||
|
||||
if (manager->runtime_scope != RUNTIME_SCOPE_USER) {
|
||||
r = varlink_verify_polkit_async(
|
||||
link,
|
||||
|
||||
@@ -433,7 +433,7 @@ static int method_create_or_register_machine(
|
||||
c = _MACHINE_CLASS_INVALID;
|
||||
else {
|
||||
c = machine_class_from_string(class);
|
||||
if (c < 0)
|
||||
if (c < 0 || !IN_SET(c, MACHINE_CONTAINER, MACHINE_VM))
|
||||
return sd_bus_error_set(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid machine class parameter");
|
||||
}
|
||||
|
||||
@@ -608,7 +608,7 @@ static int method_create_or_register_machine_ex(
|
||||
c = _MACHINE_CLASS_INVALID;
|
||||
else {
|
||||
c = machine_class_from_string(class);
|
||||
if (c < 0)
|
||||
if (c < 0 || !IN_SET(c, MACHINE_CONTAINER, MACHINE_VM))
|
||||
return sd_bus_error_set(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid machine class parameter");
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user