mirror of
https://github.com/Dasharo/systemd.git
synced 2026-03-06 15:02:31 -08:00
varlink: add helper varlink_error_invalid_parameter_name()
This commit is contained in:
@@ -276,18 +276,18 @@ static int vl_method_extend(Varlink *link, JsonVariant *parameters, VarlinkMetho
|
||||
return r;
|
||||
|
||||
if (!TPM2_PCR_INDEX_VALID(p.pcr))
|
||||
return varlink_errorb(link, VARLINK_ERROR_INVALID_PARAMETER, JSON_BUILD_OBJECT(JSON_BUILD_PAIR_STRING("parameter", "pcr")));
|
||||
return varlink_error_invalid_parameter_name(link, "pcr");
|
||||
|
||||
if (p.text) {
|
||||
/* Specifying both the text string and the binary data is not allowed */
|
||||
if (p.data.iov_base)
|
||||
return varlink_errorb(link, VARLINK_ERROR_INVALID_PARAMETER, JSON_BUILD_OBJECT(JSON_BUILD_PAIR_STRING("parameter", "data")));
|
||||
return varlink_error_invalid_parameter_name(link, "data");
|
||||
|
||||
r = extend_now(p.pcr, p.text, strlen(p.text), _TPM2_USERSPACE_EVENT_TYPE_INVALID);
|
||||
} else if (p.data.iov_base)
|
||||
r = extend_now(p.pcr, p.data.iov_base, p.data.iov_len, _TPM2_USERSPACE_EVENT_TYPE_INVALID);
|
||||
else
|
||||
return varlink_errorb(link, VARLINK_ERROR_INVALID_PARAMETER, JSON_BUILD_OBJECT(JSON_BUILD_PAIR_STRING("parameter", "text")));
|
||||
return varlink_error_invalid_parameter_name(link, "text");
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
|
||||
@@ -1336,7 +1336,7 @@ static int varlink_dispatch_method(Varlink *v) {
|
||||
varlink_log_errno(v, r, "Parameters for method %s() didn't pass validation on field '%s': %m", method, strna(bad_field));
|
||||
|
||||
if (IN_SET(v->state, VARLINK_PROCESSING_METHOD, VARLINK_PROCESSING_METHOD_MORE)) {
|
||||
r = varlink_errorb(v, VARLINK_ERROR_INVALID_PARAMETER, JSON_BUILD_OBJECT(JSON_BUILD_PAIR_STRING("parameter", bad_field)));
|
||||
r = varlink_error_invalid_parameter_name(v, bad_field);
|
||||
if (r < 0)
|
||||
return r;
|
||||
}
|
||||
@@ -2422,6 +2422,13 @@ int varlink_error_invalid_parameter(Varlink *v, JsonVariant *parameters) {
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
int varlink_error_invalid_parameter_name(Varlink *v, const char *name) {
|
||||
return varlink_errorb(
|
||||
v,
|
||||
VARLINK_ERROR_INVALID_PARAMETER,
|
||||
JSON_BUILD_OBJECT(JSON_BUILD_PAIR("parameter", JSON_BUILD_STRING(name))));
|
||||
}
|
||||
|
||||
int varlink_error_errno(Varlink *v, int error) {
|
||||
return varlink_errorb(
|
||||
v,
|
||||
@@ -2501,8 +2508,7 @@ int varlink_dispatch(Varlink *v, JsonVariant *parameters, const JsonDispatch tab
|
||||
r = json_dispatch_full(parameters, table, /* bad= */ NULL, /* flags= */ 0, userdata, &bad_field);
|
||||
if (r < 0) {
|
||||
if (bad_field)
|
||||
return varlink_errorb(v, VARLINK_ERROR_INVALID_PARAMETER,
|
||||
JSON_BUILD_OBJECT(JSON_BUILD_PAIR("parameter", JSON_BUILD_STRING(bad_field))));
|
||||
return varlink_error_invalid_parameter_name(v, bad_field);
|
||||
return r;
|
||||
}
|
||||
|
||||
|
||||
@@ -109,6 +109,7 @@ int varlink_replyb(Varlink *v, ...);
|
||||
int varlink_error(Varlink *v, const char *error_id, JsonVariant *parameters);
|
||||
int varlink_errorb(Varlink *v, const char *error_id, ...);
|
||||
int varlink_error_invalid_parameter(Varlink *v, JsonVariant *parameters);
|
||||
int varlink_error_invalid_parameter_name(Varlink *v, const char *name);
|
||||
int varlink_error_errno(Varlink *v, int error);
|
||||
|
||||
/* Enqueue a "more" reply */
|
||||
|
||||
@@ -342,7 +342,7 @@ static int parse_image_class_parameter(Varlink *link, const char *value, ImageCl
|
||||
|
||||
c = image_class_from_string(value);
|
||||
if (!IN_SET(c, IMAGE_SYSEXT, IMAGE_CONFEXT))
|
||||
return varlink_errorb(link, VARLINK_ERROR_INVALID_PARAMETER, JSON_BUILD_OBJECT(JSON_BUILD_PAIR_STRING("parameter", "class")));
|
||||
return varlink_error_invalid_parameter_name(link, "class");
|
||||
|
||||
if (hierarchies) {
|
||||
r = parse_env_extension_hierarchies(&h, image_class_info[c].name_env);
|
||||
|
||||
Reference in New Issue
Block a user