alsa-mixer: Get rid of a compiler warning.

On 64-bit systems LONG_MAX is greater than the largest possible value of a
uint32_t variable, which caused the compiler to warn about a comparison that is
always false. On 32-bit systems pa_atou() can return a value that will overflow
when assigned to e->volume_limit, which has type long, so the comparison was
necessary.

This dilemma is resolved by using pa_atol() instead of pa_atou().
This commit is contained in:
Tanu Kaskinen 2011-03-27 21:35:03 +03:00 committed by Colin Guthrie
parent 60f191941b
commit 77da2c4bcf
3 changed files with 26 additions and 10 deletions

View file

@ -1920,14 +1920,14 @@ static int element_parse_volume_limit(
pa_alsa_path *p = userdata;
pa_alsa_element *e;
uint32_t volume_limit;
long volume_limit;
if (!(e = element_get(p, section, TRUE))) {
pa_log("[%s:%u] volume-limit makes no sense in '%s'", filename, line, section);
return -1;
}
if (pa_atou(rvalue, &volume_limit) < 0 || volume_limit > LONG_MAX) {
if (pa_atol(rvalue, &volume_limit) < 0 || volume_limit < 0) {
pa_log("[%s:%u] Invalid value for volume-limit", filename, line);
return -1;
}