Re: [PATCH] add_feature: coredump

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



If no features are present, the function will return from the case "if (!n || *n == '0')" ( structs.c line 521) .

Because add_feature() is called by some functions, taking a protect inside is much safer.




Hannes Reinecke <hare@xxxxxxx>

2016-10-14 14:02

收件人
huang.wei56@xxxxxxxxxx, Christophe Varoqui <christophe.varoqui@xxxxxxxxxxx>,
抄送
bmarzins@xxxxxxxxxx, dm-devel@xxxxxxxxxx, zhang.kai16@xxxxxxxxxx, tang.junhui@xxxxxxxxxx
主题
Re: [PATCH] add_feature: coredump





On 10/14/2016 04:08 AM, huang.wei56@xxxxxxxxxx wrote:
> From: "wei.huang" <huang.wei56@xxxxxxxxxx>
>
> Problem:
> when we configure device like vendor is COMPELNT in multipath.conf, multipathd will be coredump.
>
> Reasons:
> some vonders are not configured features in default_hw. In add_feature, strstr's first parameter *f maybe null.
>
> Signed-off-by: wei.huang <huang.wei56@xxxxxxxxxx>
> ---
>  libmultipath/structs.c | 14 ++++++++++++++
>  1 file changed, 14 insertions(+)
>
> diff --git a/libmultipath/structs.c b/libmultipath/structs.c
> index fee58e5..41e142f 100644
> --- a/libmultipath/structs.c
> +++ b/libmultipath/structs.c
> @@ -520,6 +520,20 @@ add_feature (char **f, char *n)
>                   if (!n || *n == '0')
>                                    return 0;
>  
> +                 /* default feature is null */
> +                 if(!*f)
> +                 {
> +                                  l = strlen("1 ") + strlen(n) + 1;
> +                                  t = MALLOC(l);
> +                                  if (!t)
> +                                                   return 1;
> +
> +                                  snprintf(t, l, "1 %s", n);
> +                                  *f = t;
> +                
> +                                  return 0;
> +                 }
> +
>                   /* Check if feature is already present */
>                   if (strstr(*f, n))
>                                    return 0;
>
No, that is wrong.
It'll insert a '1' into the string if no features are present.

I have a patch queued for fixing this one up.

Cheers,

Hannes
--
Dr. Hannes Reinecke                                     Teamlead Storage & Networking
hare@xxxxxxx                                                                  +49 911 74053 688
SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: F. Imendörffer, J. Smithard, J. Guild, D. Upmanyu, G. Norton
HRB 21284 (AG Nürnberg)

--
dm-devel mailing list
dm-devel@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/dm-devel

[Index of Archives]     [DM Crypt]     [Fedora Desktop]     [ATA RAID]     [Fedora Marketing]     [Fedora Packaging]     [Fedora SELinux]     [Yosemite Discussion]     [KDE Users]     [Fedora Docs]

  Powered by Linux