forked from Imagelibrary/rtems
score: Fix _Objects_Id_to_name()
Avoid out-of-bounds array access in case the object class is invalid.
This commit is contained in:
@@ -25,8 +25,6 @@ Objects_Name_or_id_lookup_errors _Objects_Id_to_name (
|
|||||||
Objects_Name *name
|
Objects_Name *name
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
uint32_t the_api;
|
|
||||||
uint32_t the_class;
|
|
||||||
Objects_Id tmpId;
|
Objects_Id tmpId;
|
||||||
Objects_Information *information;
|
Objects_Information *information;
|
||||||
Objects_Control *the_object = (Objects_Control *) 0;
|
Objects_Control *the_object = (Objects_Control *) 0;
|
||||||
@@ -39,16 +37,7 @@ Objects_Name_or_id_lookup_errors _Objects_Id_to_name (
|
|||||||
|
|
||||||
tmpId = (id == OBJECTS_ID_OF_SELF) ? _Thread_Get_executing()->Object.id : id;
|
tmpId = (id == OBJECTS_ID_OF_SELF) ? _Thread_Get_executing()->Object.id : id;
|
||||||
|
|
||||||
the_api = _Objects_Get_API( tmpId );
|
information = _Objects_Get_information_id( tmpId );
|
||||||
if ( !_Objects_Is_api_valid( the_api ) )
|
|
||||||
return OBJECTS_INVALID_ID;
|
|
||||||
|
|
||||||
if ( !_Objects_Information_table[ the_api ] )
|
|
||||||
return OBJECTS_INVALID_ID;
|
|
||||||
|
|
||||||
the_class = _Objects_Get_class( tmpId );
|
|
||||||
|
|
||||||
information = _Objects_Information_table[ the_api ][ the_class ];
|
|
||||||
if ( !information )
|
if ( !information )
|
||||||
return OBJECTS_INVALID_ID;
|
return OBJECTS_INVALID_ID;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user