[modify][components][utilities]check if the ve_exporter_num is out of bounds.

Signed-off-by: WillianChan <chentingwei@rt-thread.com>
This commit is contained in:
WillianChan 2021-09-02 20:02:08 +08:00
parent 4b2913a898
commit e53ae3ddfa
2 changed files with 5 additions and 2 deletions

View File

@ -69,6 +69,9 @@ int var_export_init(void)
ve_exporter_table = (const ve_exporter_t *)ptr_begin; ve_exporter_table = (const ve_exporter_t *)ptr_begin;
ve_exporter_num = (ptr_end - ptr_begin) / (sizeof(struct ve_exporter) / sizeof(unsigned int)) + 1; ve_exporter_num = (ptr_end - ptr_begin) / (sizeof(struct ve_exporter) / sizeof(unsigned int)) + 1;
/* check if the ve_exporter_num is out of bounds */
RT_ASSERT(ve_exporter_num < (sizeof(ve_exporter_tab) / sizeof(ve_exporter_t)));
for (index_i = 0; index_i < ve_exporter_num; index_i++) for (index_i = 0; index_i < ve_exporter_num; index_i++)
{ {
ve_exporter_tab[index_i] = ve_exporter_table[index_i]; ve_exporter_tab[index_i] = ve_exporter_table[index_i];

View File

@ -67,7 +67,7 @@ static int ve_find_module(int argc, char **argv)
exporter = ve_iter_next(&iter); exporter = ve_iter_next(&iter);
if (exporter == RT_NULL) if (exporter == RT_NULL)
{ {
return RT_EOK; return -RT_ERROR;
} }
else else
{ {
@ -104,7 +104,7 @@ static int ve_find_value(int argc, char **argv)
exporter = ve_iter_next(&iter); exporter = ve_iter_next(&iter);
if (exporter == RT_NULL) if (exporter == RT_NULL)
{ {
return RT_EOK; return -RT_ERROR;
} }
else else
{ {