diff options
author | Christophe JAILLET <christophe.jaillet@wanadoo.fr> | 2018-01-27 11:55:10 +0100 |
---|---|---|
committer | Richard Weinberger <richard@nod.at> | 2018-02-19 19:38:51 +0100 |
commit | 584bfe635481d9b2b7f181b05a84d6cfdce79ee7 (patch) | |
tree | f0385138ccb9beb8f27875466a1f463bd477b34f /arch/um | |
parent | um: vector: Fix a memory allocation check (diff) | |
download | linux-584bfe635481d9b2b7f181b05a84d6cfdce79ee7.tar.xz linux-584bfe635481d9b2b7f181b05a84d6cfdce79ee7.zip |
um: vector: Fix an error handling path in 'vector_parse()'
If 'find_device()' finds something, we set '*error_out' and we should
return an error. However, 'err' is known to be 0 at this point.
Explicitly return -EINVAL instead.
While at it, remove the initialization of 'err' at the beginning of the
function and also explicitly return an error code if the first check
fails.
Fixes: ad1f62ab2bd4 ("High Performance UML Vector Network Driver")
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Signed-off-by: Richard Weinberger <richard@nod.at>
Diffstat (limited to 'arch/um')
-rw-r--r-- | arch/um/drivers/vector_kern.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/arch/um/drivers/vector_kern.c b/arch/um/drivers/vector_kern.c index 063c76b3a215..4daa4fe18ad7 100644 --- a/arch/um/drivers/vector_kern.c +++ b/arch/um/drivers/vector_kern.c @@ -677,7 +677,7 @@ static struct vector_device *find_device(int n) static int vector_parse(char *str, int *index_out, char **str_out, char **error_out) { - int n, len, err = -EINVAL; + int n, len, err; char *start = str; len = strlen(str); @@ -686,7 +686,7 @@ static int vector_parse(char *str, int *index_out, char **str_out, str++; if (*str != ':') { *error_out = "Expected ':' after device number"; - return err; + return -EINVAL; } *str = '\0'; @@ -699,7 +699,7 @@ static int vector_parse(char *str, int *index_out, char **str_out, str++; if (find_device(n)) { *error_out = "Device already configured"; - return err; + return -EINVAL; } *index_out = n; |