summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorChristophe JAILLET <christophe.jaillet@wanadoo.fr>2018-01-27 11:55:10 +0100
committerRichard Weinberger <richard@nod.at>2018-02-19 19:38:51 +0100
commit584bfe635481d9b2b7f181b05a84d6cfdce79ee7 (patch)
treef0385138ccb9beb8f27875466a1f463bd477b34f /arch
parentbe967f7da50b6d08fbb78a5e4408843a9453ac1b (diff)
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')
-rw-r--r--arch/um/drivers/vector_kern.c6
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;