On Fri, Jun 29, 2018 at 5:51 AM, YueHaibing <yuehaibing@xxxxxxxxxx> wrote: > 'firmware' is a module param which may been longer than firmware_id, > so using strlcpy() to guard against overflows strncat() is against overflow, this does a bit more. > priv->firmware_id[0] = '\0'; ... > if (firmware) /* module parameter */ > - strcpy(priv->firmware_id, firmware); > + strlcpy(priv->firmware_id, firmware, sizeof(priv->firmware_id)); In either case the above '\0' is not needed. But it looks like the intention was to use strncat() / strlcat(). -- With Best Regards, Andy Shevchenko