unit tests: Fix potential buffer overflow
Fix potential buffer overflow when tracking the unmet dependencies
of a test case. The identifiers of unmet dependencies are stored
in an array of fixed size. Ensure that we don't overrun the array.
Signed-off-by: Ronald Cron <ronald.cron@arm.com>
diff --git a/tests/suites/main_test.function b/tests/suites/main_test.function
index 1fc76bd..57e8c83 100644
--- a/tests/suites/main_test.function
+++ b/tests/suites/main_test.function
@@ -393,18 +393,22 @@
{
if( dep_check( params[i] ) != DEPENDENCY_SUPPORTED )
{
- if( 0 != option_verbose )
+ if( unmet_dep_count <
+ ARRAY_LENGTH( unmet_dependencies ) )
{
- unmet_dependencies[unmet_dep_count] =
- strdup( params[i] );
- if( unmet_dependencies[unmet_dep_count] == NULL )
+ if( 0 != option_verbose )
{
- mbedtls_fprintf( stderr,
- "FATAL: Out of memory\n" );
- mbedtls_exit( MBEDTLS_EXIT_FAILURE );
+ unmet_dependencies[unmet_dep_count] =
+ strdup( params[i] );
+ if( unmet_dependencies[unmet_dep_count] == NULL )
+ {
+ mbedtls_fprintf( stderr,
+ "FATAL: Out of memory\n" );
+ mbedtls_exit( MBEDTLS_EXIT_FAILURE );
+ }
}
+ unmet_dep_count++;
}
- unmet_dep_count++;
}
}