From: Christophe JAILLET Date: Sat, 27 Jan 2018 10:55:10 +0000 (+0100) Subject: um: vector: Fix an error handling path in 'vector_parse()' X-Git-Tag: v4.17-rc1~49^2~3 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=584bfe635481d9b2b7f181b05a84d6cfdce79ee7;p=thirdparty%2Flinux.git 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 --- diff --git a/arch/um/drivers/vector_kern.c b/arch/um/drivers/vector_kern.c index 063c76b3a2152..4daa4fe18ad77 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;