Dan Carpenter
2012-Jul-12 14:48 UTC
[patch 2/3 -next] tcm_vhost: strlen() doesn't count the terminator
We do snprintf() from "page" to a buffer with TCM_VHOST_NAMELEN characters so the current code will silently truncate the last character. Signed-off-by: Dan Carpenter <dan.carpenter at oracle.com> diff --git a/drivers/vhost/tcm_vhost.c b/drivers/vhost/tcm_vhost.c index d217bed..57d39c5 100644 --- a/drivers/vhost/tcm_vhost.c +++ b/drivers/vhost/tcm_vhost.c @@ -1254,7 +1254,7 @@ static ssize_t tcm_vhost_tpg_store_nexus( * the fabric protocol_id set in tcm_vhost_make_tport(), and call * tcm_vhost_make_nexus(). */ - if (strlen(page) > TCM_VHOST_NAMELEN) { + if (strlen(page) >= TCM_VHOST_NAMELEN) { pr_err("Emulated NAA Sas Address: %s, exceeds" " max: %d\n", page, TCM_VHOST_NAMELEN); return -EINVAL;
Nicholas A. Bellinger
2012-Jul-12 21:48 UTC
[patch 2/3 -next] tcm_vhost: strlen() doesn't count the terminator
On Thu, 2012-07-12 at 17:48 +0300, Dan Carpenter wrote:> We do snprintf() from "page" to a buffer with TCM_VHOST_NAMELEN > characters so the current code will silently truncate the last > character. > > Signed-off-by: Dan Carpenter <dan.carpenter at oracle.com> > > diff --git a/drivers/vhost/tcm_vhost.c b/drivers/vhost/tcm_vhost.c > index d217bed..57d39c5 100644 > --- a/drivers/vhost/tcm_vhost.c > +++ b/drivers/vhost/tcm_vhost.c > @@ -1254,7 +1254,7 @@ static ssize_t tcm_vhost_tpg_store_nexus( > * the fabric protocol_id set in tcm_vhost_make_tport(), and call > * tcm_vhost_make_nexus(). > */ > - if (strlen(page) > TCM_VHOST_NAMELEN) { > + if (strlen(page) >= TCM_VHOST_NAMELEN) { > pr_err("Emulated NAA Sas Address: %s, exceeds" > " max: %d\n", page, TCM_VHOST_NAMELEN); > return -EINVAL;Also applied. Thanks!
Possibly Parallel Threads
- [patch 2/3 -next] tcm_vhost: strlen() doesn't count the terminator
- [patch -next] tcm_vhost: another strlen() off by one
- [patch -next] tcm_vhost: another strlen() off by one
- [RFC-v5] tcm_vhost: Initial merge for vhost level target fabric driver
- [RFC-v5] tcm_vhost: Initial merge for vhost level target fabric driver