Strip logging for invalid inform parameter name

This commit is contained in:
suvendhu 2023-11-17 19:15:06 +05:30
parent 2a77da214b
commit 5b94e33768
3 changed files with 39 additions and 2 deletions

View file

@ -359,6 +359,43 @@ char *cwmp_get_parameter_names(const char *parameter_name, bool next_level, stru
return NULL;
}
char *cwmp_validate_parameter_name(const char *param_name, bool next_level, struct list_head *param_list)
{
struct blob_buf buf = {0};
struct list_params_result get_result = {
.parameters_list = param_list,
.error = FAULT_CPE_NO_FAULT
};
unsigned int len = CWMP_STRLEN(param_name);
if (len > 2 && param_name[len - 1] == '.' && param_name[len - 2] == '*')
return "9005";
const char *object = len ? param_name : "";
CWMP_MEMSET(&buf, 0, sizeof(struct blob_buf));
blob_buf_init(&buf, 0);
bb_add_string(&buf, "path", object);
blobmsg_add_u8(&buf, "first_level", next_level);
prepare_optional_table(&buf);
int e = icwmp_ubus_invoke(BBFDM_OBJECT_NAME, "schema", buf.head, ubus_get_parameter_callback, &get_result);
blob_buf_free(&buf);
if (e < 0)
return "9002";
if (get_result.error) {
char err[8] = {0};
snprintf(err, sizeof(err), "%d", get_result.error);
return icwmp_strdup(err);
}
return NULL;
}
/*
* Set multiple parameter values
*/

View file

@ -29,6 +29,7 @@ bool cwmp_get_parameter_value(const char *parameter_name, struct cwmp_dm_paramet
char *cwmp_get_parameter_values(const char *parameter_name, struct list_head *parameters_list);
char *cwmp_get_parameter_names(const char *parameter_name, bool next_level, struct list_head *parameters_list);
char *cwmp_validate_parameter_name(const char *param_name, bool next_level, struct list_head *param_list);
int cwmp_set_parameter_value(const char *parameter_name, const char *parameter_value, struct list_head *faults_list);
int cwmp_set_multi_parameters_value(struct list_head *parameters_values_list, struct list_head *faults_list);

View file

@ -100,7 +100,7 @@ char *check_valid_parameter_path(char *parameter_name)
LIST_HEAD(parameters_list);
/*check if parameter name is valid parameter path*/
error = cwmp_get_parameter_names(parameter_name, false, &parameters_list);
error = cwmp_validate_parameter_name(parameter_name, false, &parameters_list);
if (error && CWMP_STRCMP(error, "9003") == 0)
error = cwmp_get_parameter_values(parameter_name, &parameters_list);
@ -544,7 +544,6 @@ void set_default_forced_active_parameters_notifications()
continue;
if (strcmp(fault, "9005") == 0) {
CWMP_LOG(WARNING, "The parameter %s is wrong path", default_active_notifications_parameters[i]);
continue;
}