osm_qos_parser_y.y: Added range check for rate limit parsing
PATCH 1/1 osm_qos_parser_y.y: Added range check for rate limit parsing
From: Tomer Cohen <tomerco-VPRAkNaXOzVWk0Htik3J/[email protected]>
--- opensm/osm_qos_parser_y.y | 9 +++++++++ 1 files changed, 9 insertions(+), 0 deletions(-)
opensm/osm_qos_parser_y.y +9 -0
@@ -61,6 +61,8 @@ #define OSM_QOS_POLICY_MAX_LINE_LEN 1024*10 #define OSM_QOS_POLICY_SL2VL_TABLE_LEN IB_MAX_NUM_VLS #define OSM_QOS_POLICY_MAX_VL_NUM IB_MAX_NUM_VLS +#define OSM_QOS_POLICY_MAX_RATE IB_MAX_RATE +#define OSM_QOS_POLICY_MIN_RATE IB_MIN_RATE typedef struct tmp_parser_struct_t_ { char str[OSM_QOS_POLICY_MAX_LINE_LEN];
@@ -1879,6 +1881,13 @@ qos_level_rate_limit: qos_level_rate_limit_start single_number { } list_iterator = cl_list_head(&tmp_parser_struct.num_list); p_num = (uint64_t*)cl_list_obj(list_iterator); + if (*p_num > OSM_QOS_POLICY_MAX_RATE || *p_num < OSM_QOS_POLICY_MIN_RATE) + { + yyerror("rate limit is out of range, value: %d", *p_num); + free(p_num); + cl_list_remove_all(&tmp_parser_struct.num_list); + return 1; + } p_current_qos_level->rate_limit = (uint8_t)(*p_num); free(p_num); p_current_qos_level->rate_limit_set = TRUE;
Signature · 6 lines
1.7.8.2 -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html