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.
This commit is contained in:
parent
e77d96cf89
commit
d22df2915c
@ -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;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user