@@ -3521,27 +3521,26 @@ static BaseType_t prvCreateIdleTasks( void )
3521
3521
{
3522
3522
BaseType_t xReturn = pdPASS ;
3523
3523
BaseType_t xCoreID ;
3524
- char cIdleName [ configMAX_TASK_NAME_LEN ];
3524
+ char cIdleName [ configMAX_TASK_NAME_LEN ] = { 0 } ;
3525
3525
TaskFunction_t pxIdleTaskFunction = NULL ;
3526
3526
BaseType_t xIdleTaskNameIndex ;
3527
3527
3528
- for ( xIdleTaskNameIndex = ( BaseType_t ) 0 ; xIdleTaskNameIndex < ( BaseType_t ) configMAX_TASK_NAME_LEN ; xIdleTaskNameIndex ++ )
3528
+ configASSERT ( configIDLE_TASK_NAME != NULL && configMAX_TASK_NAME_LEN > 3 );
3529
+
3530
+ /* The length of the idle task name is limited to the minimum of the length
3531
+ * of configIDLE_TASK_NAME and configMAX_TASK_NAME_LEN - 2, keeping space
3532
+ * for the core ID suffix and the null-terminator. */
3533
+ BaseType_t xIdleNameLen = sizeof ( configIDLE_TASK_NAME ) - 1 ;
3534
+ BaseType_t xCopyLen = ( xIdleNameLen < configMAX_TASK_NAME_LEN - 2 ) ? xIdleNameLen : configMAX_TASK_NAME_LEN - 2 ;
3535
+
3536
+ for ( xIdleTaskNameIndex = ( BaseType_t ) 0 ; xIdleTaskNameIndex < xCopyLen ; xIdleTaskNameIndex ++ )
3529
3537
{
3530
3538
cIdleName [ xIdleTaskNameIndex ] = configIDLE_TASK_NAME [ xIdleTaskNameIndex ];
3531
-
3532
- /* Don't copy all configMAX_TASK_NAME_LEN if the string is shorter than
3533
- * configMAX_TASK_NAME_LEN characters just in case the memory after the
3534
- * string is not accessible (extremely unlikely). */
3535
- if ( cIdleName [ xIdleTaskNameIndex ] == ( char ) 0x00 )
3536
- {
3537
- break ;
3538
- }
3539
- else
3540
- {
3541
- mtCOVERAGE_TEST_MARKER ();
3542
- }
3543
3539
}
3544
3540
3541
+ /* Ensure null termination. */
3542
+ cIdleName [ xIdleTaskNameIndex ] = '\0' ;
3543
+
3545
3544
/* Add each idle task at the lowest priority. */
3546
3545
for ( xCoreID = ( BaseType_t ) 0 ; xCoreID < ( BaseType_t ) configNUMBER_OF_CORES ; xCoreID ++ )
3547
3546
{
@@ -3570,25 +3569,9 @@ static BaseType_t prvCreateIdleTasks( void )
3570
3569
* only one idle task. */
3571
3570
#if ( configNUMBER_OF_CORES > 1 )
3572
3571
{
3573
- /* Append the idle task number to the end of the name if there is space. */
3574
- if ( xIdleTaskNameIndex < ( BaseType_t ) configMAX_TASK_NAME_LEN )
3575
- {
3576
- cIdleName [ xIdleTaskNameIndex ] = ( char ) ( xCoreID + '0' );
3577
-
3578
- /* And append a null character if there is space. */
3579
- if ( ( xIdleTaskNameIndex + 1 ) < ( BaseType_t ) configMAX_TASK_NAME_LEN )
3580
- {
3581
- cIdleName [ xIdleTaskNameIndex + 1 ] = '\0' ;
3582
- }
3583
- else
3584
- {
3585
- mtCOVERAGE_TEST_MARKER ();
3586
- }
3587
- }
3588
- else
3589
- {
3590
- mtCOVERAGE_TEST_MARKER ();
3591
- }
3572
+ /* Append the idle task number to the end of the name. */
3573
+ cIdleName [ xIdleTaskNameIndex ] = ( char ) ( xCoreID + '0' );
3574
+ cIdleName [ xIdleTaskNameIndex + 1 ] = '\0' ;
3592
3575
}
3593
3576
#endif /* if ( configNUMBER_OF_CORES > 1 ) */
3594
3577
0 commit comments