mirror of https://git.48k.eu/ogserver
#915 Validate POST /shell/run REST API parameters
This patch ensures that all required parameters are sent in the request.master
parent
ec5fe704cc
commit
b403c7ae6c
|
@ -3295,6 +3295,7 @@ struct og_msg_params {
|
||||||
#define OG_REST_PARAM_ADDR (1UL << 0)
|
#define OG_REST_PARAM_ADDR (1UL << 0)
|
||||||
#define OG_REST_PARAM_MAC (1UL << 1)
|
#define OG_REST_PARAM_MAC (1UL << 1)
|
||||||
#define OG_REST_PARAM_WOL_TYPE (1UL << 2)
|
#define OG_REST_PARAM_WOL_TYPE (1UL << 2)
|
||||||
|
#define OG_REST_PARAM_RUN_CMD (1UL << 3)
|
||||||
|
|
||||||
static bool og_msg_params_validate(const struct og_msg_params *params,
|
static bool og_msg_params_validate(const struct og_msg_params *params,
|
||||||
const uint64_t flags)
|
const uint64_t flags)
|
||||||
|
@ -3643,6 +3644,8 @@ static int og_json_parse_run(json_t *element, struct og_msg_params *params)
|
||||||
snprintf(params->run_cmd, sizeof(params->run_cmd), "%s",
|
snprintf(params->run_cmd, sizeof(params->run_cmd), "%s",
|
||||||
json_string_value(element));
|
json_string_value(element));
|
||||||
|
|
||||||
|
params->flags |= OG_REST_PARAM_RUN_CMD;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3668,6 +3671,10 @@ static int og_cmd_run_post(json_t *element, struct og_msg_params *params)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!og_msg_params_validate(params, OG_REST_PARAM_ADDR |
|
||||||
|
OG_REST_PARAM_RUN_CMD))
|
||||||
|
return -1;
|
||||||
|
|
||||||
for (i = 0; i < params->ips_array_len; i++) {
|
for (i = 0; i < params->ips_array_len; i++) {
|
||||||
len = snprintf(iph + strlen(iph), sizeof(iph), "%s;",
|
len = snprintf(iph + strlen(iph), sizeof(iph), "%s;",
|
||||||
params->ips_array[i]);
|
params->ips_array[i]);
|
||||||
|
|
Loading…
Reference in New Issue