]> git.alsa-project.org Git - alsa-lib.git/commitdiff
topology: fix tplg_get_integer() - handle errno == ERANGE
authorJaroslav Kysela <perex@perex.cz>
Sat, 14 Dec 2019 12:52:18 +0000 (13:52 +0100)
committerJaroslav Kysela <perex@perex.cz>
Fri, 3 Jan 2020 22:38:08 +0000 (23:38 +0100)
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
src/topology/parser.c

index 7e657809307d4564c75efbc82932d36ae1f0bff5..667c8d45517b3b572053181dff6ac669dd045f54 100644 (file)
@@ -36,14 +36,19 @@ int tplg_get_integer(snd_config_t *n, int *val, int base)
                if (err < 0)
                        return err;
                if (lval < INT_MIN || lval > INT_MAX)
-                       return -EINVAL;
+                       return -ERANGE;
                *val = lval;
                return err;
        case SND_CONFIG_TYPE_STRING:
                err = snd_config_get_string(n, &str);
                if (err < 0)
                        return err;
+               errno = 0;
                *val = strtol(str, NULL, base);
+               if (errno == ERANGE)
+                       return -ERANGE;
+               if (errno && *val == 0)
+                       return -EINVAL;
                return 0;
        default:
                return -EINVAL;