From d22df2915ce5005e6789f0cd4d188e56432264a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonathan=20Neusch=C3=A4fer?= Date: Wed, 15 Feb 2012 20:35:06 +0100 Subject: main: handle negative strtol return value size_t is unsigned most of the time, so we can't really use it to check for negative values. Also handle strtol overflow. --- src/main.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/main.c b/src/main.c index f7e7ba778..687e86f7e 100644 --- a/src/main.c +++ b/src/main.c @@ -258,10 +258,11 @@ initialize_decoder_and_player(void) param = config_get_param(CONF_AUDIO_BUFFER_SIZE); if (param != NULL) { - buffer_size = strtol(param->value, &test, 10); - if (*test != '\0' || buffer_size <= 0) + long tmp = strtol(param->value, &test, 10); + if (*test != '\0' || tmp <= 0 || tmp == LONG_MAX) MPD_ERROR("buffer size \"%s\" is not a positive integer, " "line %i\n", param->value, param->line); + buffer_size = tmp; } else buffer_size = DEFAULT_BUFFER_SIZE; -- cgit v1.2.3