mirror of
https://gitlab.rtems.org/rtems/rtos/rtems.git
synced 2026-09-20 17:19:13 +08:00
rtems: Avoid NULL pointer access
The _MPCI_table may be NULL in case multiprocessing is disabled in the application configuration.
This commit is contained in:
@@ -48,7 +48,6 @@ rtems_status_code rtems_message_queue_create(
|
||||
CORE_message_queue_Attributes the_msgq_attributes;
|
||||
#if defined(RTEMS_MULTIPROCESSING)
|
||||
bool is_global;
|
||||
size_t max_packet_payload_size;
|
||||
#endif
|
||||
|
||||
if ( !rtems_is_name_valid( name ) )
|
||||
@@ -76,11 +75,14 @@ rtems_status_code rtems_message_queue_create(
|
||||
* It seems reasonable to create a que with a large max size,
|
||||
* and then just send smaller msgs from remote (or all) nodes.
|
||||
*/
|
||||
if ( is_global ) {
|
||||
size_t max_packet_payload_size = _MPCI_table->maximum_packet_size
|
||||
- MESSAGE_QUEUE_MP_PACKET_SIZE;
|
||||
|
||||
max_packet_payload_size = _MPCI_table->maximum_packet_size
|
||||
- MESSAGE_QUEUE_MP_PACKET_SIZE;
|
||||
if ( is_global && max_packet_payload_size < max_message_size )
|
||||
return RTEMS_INVALID_SIZE;
|
||||
if ( max_message_size > max_packet_payload_size ) {
|
||||
return RTEMS_INVALID_SIZE;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
Reference in New Issue
Block a user