<font size=3>Hi</font><tt><font size=2> Bart,</font></tt>
<br>
<br><font size=2 face="sans-serif">Thanks for your answer.</font>
<br>
<br><font size=2 face="sans-serif">I commit the code again with the title
"segment faulty occured in add_feature()", please review.</font>
<br>
<br><font size=2 face="sans-serif">Thanks,</font>
<br>
<br><font size=2 face="sans-serif">Wei huang.</font>
<br>
<br>
<br>
<table width=100%>
<tr valign=top>
<td width=36%><font size=1 face="sans-serif"><b>Bart Van Assche <bart.vanassche@sandisk.com></b>
</font>
<p><font size=1 face="sans-serif">2016-10-28 23:14</font>
<td width=63%>
<table width=100%>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">收件人</font></div>
<td><font size=1 face="sans-serif"><huang.wei56@zte.com.cn>, Christophe
Varoqui <christophe.varoqui@opensvc.com>, </font>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">抄送</font></div>
<td><font size=1 face="sans-serif"><tang.junhui@zte.com.cn>, <zhang.kai16@zte.com.cn>,
<dm-devel@redhat.com></font>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">主题</font></div>
<td><font size=1 face="sans-serif">Re: [dm-devel] [PATCH] add_feature:
coredump</font></table>
<br>
<table>
<tr valign=top>
<td>
<td></table>
<br></table>
<br>
<br>
<br><tt><font size=2>On 10/13/2016 07:08 PM, huang.wei56@zte.com.cn wrote:<br>
> From: "wei.huang" <huang.wei56@zte.com.cn><br>
><br>
> Problem:<br>
> when we configure device like vendor is COMPELNT in multipath.conf,
multipathd will be coredump.<br>
><br>
> Reasons:<br>
> some vonders are not configured features in default_hw. In add_feature,
strstr's first parameter *f maybe null.<br>
><br>
> Signed-off-by: wei.huang <huang.wei56@zte.com.cn><br>
> ---<br>
>  libmultipath/structs.c | 14 ++++++++++++++<br>
>  1 file changed, 14 insertions(+)<br>
><br>
> diff --git a/libmultipath/structs.c b/libmultipath/structs.c<br>
> index fee58e5..41e142f 100644<br>
> --- a/libmultipath/structs.c<br>
> +++ b/libmultipath/structs.c<br>
> @@ -520,6 +520,20 @@ add_feature (char **f, char *n)<br>
>                  
if (!n || *n == '0')<br>
>                  
                 return
0;<br>
><br>
> +                
/* default feature is null */<br>
> +                
if(!*f)<br>
> +                
{<br>
> +                
                 l
= strlen("1 ") + strlen(n) + 1;<br>
> +                
                 t
= MALLOC(l);<br>
> +                
                 if
(!t)<br>
> +                
                 
               
return 1;<br>
> +<br>
> +                
                 snprintf(t,
l, "1 %s", n);<br>
> +                
                 *f
= t;<br>
> +                
<br>
> +                
                 return
0;<br>
> +                
}<br>
> +<br>
>                  
/* Check if feature is already present */<br>
>                  
if (strstr(*f, n))<br>
>                  
                 return
0;<br>
><br>
<br>
Hello Wei Huang,<br>
<br>
Please use asprintf() instead of open coding it and please also make the
<br>
title of your patch comprehensible. Your patch avoids that multipathd <br>
triggers a core dump for a certain vendor name but that's not clear from
<br>
the "add_feature: coredump".<br>
<br>
Thanks,<br>
<br>
Bart.<br>
</font></tt>
<br>