From d41715fc9f0050b18b8e976b92e02e86041ee448 Mon Sep 17 00:00:00 2001 From: Dave Love Date: Sun, 14 May 2017 23:14:09 +0100 Subject: [PATCH 16/30] Use strtol, not atoi --- src/lib/message.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/lib/message.c b/src/lib/message.c index 502cb454..f84537c7 100644 --- a/src/lib/message.c +++ b/src/lib/message.c @@ -26,6 +26,7 @@ #include #include #include +#include #include "config.h" #include "util/util.h" @@ -37,13 +38,20 @@ extern const char *__progname; void init(void) { char *messagelevel_string = getenv("MESSAGELEVEL"); // Flawfinder: ignore (need to get string, validation in atol()) + char **endptr = &messagelevel_string; + long l; openlog("Singularity", LOG_CONS | LOG_NDELAY, LOG_LOCAL0); if ( messagelevel_string == NULL ) { messagelevel = 1; } else { - messagelevel = atoi(messagelevel_string); // Flawfinder: ignore + l = strtol(messagelevel_string, endptr, 10); + if (LONG_MIN == l || LONG_MAX == l || l < 0 || l > 9 + || (*messagelevel_string != '\0' && **endptr != '\0')) { + singularity_message(VERBOSE, "Bad MESSAGELEVEL: %s\n", messagelevel_string); + } + messagelevel = l; if ( messagelevel < 0 ) { messagelevel = 0; } else if ( messagelevel > 9 ) { -- 2.11.0