From 584bfe635481d9b2b7f181b05a84d6cfdce79ee7 Mon Sep 17 00:00:00 2001 From: Christophe JAILLET Date: Sat, 27 Jan 2018 11:55:10 +0100 Subject: 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 Signed-off-by: Richard Weinberger --- arch/um/drivers/vector_kern.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'arch/um/drivers') 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; -- cgit v1.2.3