[dm-devel] [PATCH v3 06/19] libmultipath: fix set_int error path
Martin Wilck
mwilck at suse.com
Mon Oct 1 21:17:16 UTC 2018
On Fri, 2018-09-21 at 18:05 -0500, Benjamin Marzinski wrote:
> set_int() wasn't checking if the line actually had a value before
> converting it to an integer. Found by coverity. Also, it should
> be using set_value().
>
> Signed-off-by: Benjamin Marzinski <bmarzins at redhat.com>
> ---
> libmultipath/dict.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/libmultipath/dict.c b/libmultipath/dict.c
> index 32524d5..bf4701e 100644
> --- a/libmultipath/dict.c
> +++ b/libmultipath/dict.c
> @@ -33,7 +33,10 @@ set_int(vector strvec, void *ptr)
> int *int_ptr = (int *)ptr;
> char * buff;
>
> - buff = VECTOR_SLOT(strvec, 1);
> + buff = set_value(strvec);
> + if (!buff)
> + return 1;
> +
> *int_ptr = atoi(buff);
>
> return 0;
Well, I believe that validate_config_strvec() would have made sure
that VECTOR_SLOT(strvec, 1) exists and is non-NULL before set_int() is
called via keyword->handler(). Also, if we want to make this more
robust, we might want to use strtol() rather than atoi() to check for
an actual int argument.
Anyway:
Reviewed-by: Martin Wilck <mwilck at suse.com>
--
Dr. Martin Wilck <mwilck at suse.com>, Tel. +49 (0)911 74053 2107
SUSE Linux GmbH, GF: Felix Imendörffer, Jane Smithard, Graham Norton
HRB 21284 (AG Nürnberg)
More information about the dm-devel
mailing list