diff --git a/src/logging.c b/src/logging.c index 46c690db..84498f30 100644 --- a/src/logging.c +++ b/src/logging.c @@ -274,7 +274,7 @@ rcutils_ret_t rcutils_logging_set_logger_level(const char * name, int level) // Convert the severity value into a string for storage. // TODO(dhood): replace string map with int map. if (level < 0 || - level > + level >= (int)(sizeof(g_rcutils_log_severity_names) / sizeof(g_rcutils_log_severity_names[0]))) { RCUTILS_SET_ERROR_MSG( diff --git a/test/test_logging.cpp b/test/test_logging.cpp index ac152ccc..5a1b7f97 100644 --- a/test/test_logging.cpp +++ b/test/test_logging.cpp @@ -162,6 +162,9 @@ TEST(CLASSNAME(TestLogging, RMW_IMPLEMENTATION), test_logger_severities) { ASSERT_EQ( RCUTILS_RET_INVALID_ARGUMENT, rcutils_logging_set_logger_level("rcutils_test_loggers", -1)); + ASSERT_EQ( + RCUTILS_RET_INVALID_ARGUMENT, + rcutils_logging_set_logger_level("rcutils_test_loggers", 51)); ASSERT_EQ( RCUTILS_RET_INVALID_ARGUMENT, rcutils_logging_set_logger_level("rcutils_test_loggers", 1000));