[PATCH] nvme: fix string_matches() helper
Andy Lutomirski
luto at kernel.org
Tue Jun 13 08:42:59 PDT 2017
On Tue, Jun 13, 2017 at 6:07 AM, Christoph Hellwig <hch at lst.de> wrote:
> NVMe "ASCII" strings are not nul-terminated and can use up every single
> byte in the field. Thus use strnlen to determine the match length instead
> of possibly overrunning the field.
>
> Signed-off-by: Christoph Hellwig <hch at lst.de>
> ---
> drivers/nvme/host/core.c | 4 +---
> 1 file changed, 1 insertion(+), 3 deletions(-)
>
> diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c
> index 434b18863895..2658a3a3cbb5 100644
> --- a/drivers/nvme/host/core.c
> +++ b/drivers/nvme/host/core.c
> @@ -1581,9 +1581,7 @@ static bool string_matches(const char *idstr, const char *match, size_t len)
> if (!match)
> return true;
>
> - matchlen = strlen(match);
> - WARN_ON_ONCE(matchlen > len);
> -
> + matchlen = strnlen(match, len);
"match" refers to the string in the quirk table, which should be a
plain C string. Are you hitting this in practice?
More information about the Linux-nvme
mailing list