diff options
author | Jonathan Neuschäfer <j.neuschaefer@gmx.net> | 2012-02-15 20:35:06 +0100 |
---|---|---|
committer | Jonathan Neuschäfer <j.neuschaefer@gmx.net> | 2012-02-15 20:35:06 +0100 |
commit | d22df2915ce5005e6789f0cd4d188e56432264a7 (patch) | |
tree | ec48fd98305583666b7abb16359061590554f925 | |
parent | e77d96cf892592f299d6b09955db1b852b2234b3 (diff) | |
download | mpd-d22df2915ce5005e6789f0cd4d188e56432264a7.tar.gz mpd-d22df2915ce5005e6789f0cd4d188e56432264a7.tar.xz mpd-d22df2915ce5005e6789f0cd4d188e56432264a7.zip |
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.
-rw-r--r-- | src/main.c | 5 |
1 files changed, 3 insertions, 2 deletions
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; |