* Re: [patch] virtio_console: use snprintf() for safety [not found] <20150508061902.GA14769@mwanda> @ 2015-05-08 6:31 ` Amit Shah 2015-05-08 9:16 ` [patch v2] virtio_console: silence a static checker warning Dan Carpenter 0 siblings, 1 reply; 8+ messages in thread From: Amit Shah @ 2015-05-08 6:31 UTC (permalink / raw) To: Dan Carpenter Cc: Greg Kroah-Hartman, kernel-janitors, Arnd Bergmann, virtualization On (Fri) 08 May 2015 [09:19:02], Dan Carpenter wrote: > My static checker complains that this sprintf() can overflow. > > vdev->index is selected by ida_simple_get() in register_virtio_device() > so my reading of the code is that this overflow is theoretically > possible. The max value of "id" is configurable and I'm not sure what > typical values are. vdev->index is per-device, and starts with 0 for the first attached virtio-serial-pci device. So to overflow, a lot of devices have to be attached, which isn't possible with current qemu. 16 bytes was already overkill.. > Anyway, it's simple enough to make the buffer larger and I changed it to > snprintf() as well. Any reason to choose 28? I think 16 is enough. The snprintf change is fine, though. Amit ^ permalink raw reply [flat|nested] 8+ messages in thread
* [patch v2] virtio_console: silence a static checker warning 2015-05-08 6:31 ` [patch] virtio_console: use snprintf() for safety Amit Shah @ 2015-05-08 9:16 ` Dan Carpenter 2015-05-08 9:29 ` Amit Shah ` (2 more replies) 0 siblings, 3 replies; 8+ messages in thread From: Dan Carpenter @ 2015-05-08 9:16 UTC (permalink / raw) To: Amit Shah Cc: Greg Kroah-Hartman, kernel-janitors, Arnd Bergmann, virtualization My static checker complains that this sprintf() can overflow but really it can't. Just silence the warning by using snprintf(). Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> --- v2: the overflow is not possible so just leave the buffer size alone and silence the warning with snprintf(). diff --git a/drivers/char/virtio_console.c b/drivers/char/virtio_console.c index 50754d20..8283989 100644 --- a/drivers/char/virtio_console.c +++ b/drivers/char/virtio_console.c @@ -1492,8 +1492,8 @@ static int add_port(struct ports_device *portdev, u32 id) * Finally, create the debugfs file that we can use to * inspect a port's state at any time */ - sprintf(debugfs_name, "vport%up%u", - port->portdev->vdev->index, id); + snprintf(debugfs_name, sizeof(debugfs_name), "vport%up%u", + port->portdev->vdev->index, id); port->debugfs_file = debugfs_create_file(debugfs_name, 0444, pdrvdata.debugfs_dir, port, ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [patch v2] virtio_console: silence a static checker warning 2015-05-08 9:16 ` [patch v2] virtio_console: silence a static checker warning Dan Carpenter @ 2015-05-08 9:29 ` Amit Shah 2015-05-08 9:30 ` walter harms [not found] ` <554C8221.9070304@bfs.de> 2 siblings, 0 replies; 8+ messages in thread From: Amit Shah @ 2015-05-08 9:29 UTC (permalink / raw) To: Dan Carpenter Cc: Greg Kroah-Hartman, kernel-janitors, Arnd Bergmann, virtualization On (Fri) 08 May 2015 [12:16:25], Dan Carpenter wrote: > My static checker complains that this sprintf() can overflow but really > it can't. Just silence the warning by using snprintf(). Reviewed-by: Amit Shah <amit.shah@redhat.com> Thanks! Amit ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [patch v2] virtio_console: silence a static checker warning 2015-05-08 9:16 ` [patch v2] virtio_console: silence a static checker warning Dan Carpenter 2015-05-08 9:29 ` Amit Shah @ 2015-05-08 9:30 ` walter harms [not found] ` <554C8221.9070304@bfs.de> 2 siblings, 0 replies; 8+ messages in thread From: walter harms @ 2015-05-08 9:30 UTC (permalink / raw) To: Dan Carpenter Cc: Amit Shah, Greg Kroah-Hartman, kernel-janitors, Arnd Bergmann, virtualization Am 08.05.2015 11:16, schrieb Dan Carpenter: > My static checker complains that this sprintf() can overflow but really > it can't. Just silence the warning by using snprintf(). > > Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> > --- > v2: the overflow is not possible so just leave the buffer size alone and > silence the warning with snprintf(). > > diff --git a/drivers/char/virtio_console.c b/drivers/char/virtio_console.c > index 50754d20..8283989 100644 > --- a/drivers/char/virtio_console.c > +++ b/drivers/char/virtio_console.c > @@ -1492,8 +1492,8 @@ static int add_port(struct ports_device *portdev, u32 id) > * Finally, create the debugfs file that we can use to > * inspect a port's state at any time > */ > - sprintf(debugfs_name, "vport%up%u", > - port->portdev->vdev->index, id); > + snprintf(debugfs_name, sizeof(debugfs_name), "vport%up%u", > + port->portdev->vdev->index, id); would it help to use %03u (or so) to make it more obvious ? Note: i prefer a leading 0 in my programms to make it more easy to work with grep and friends. you may thing otherwise. re, wh > port->debugfs_file = debugfs_create_file(debugfs_name, 0444, > pdrvdata.debugfs_dir, > port, > -- > To unsubscribe from this list: send the line "unsubscribe kernel-janitors" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > -- > To unsubscribe from this list: send the line "unsubscribe kernel-janitors" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > ^ permalink raw reply [flat|nested] 8+ messages in thread
[parent not found: <554C8221.9070304@bfs.de>]
* Re: [patch v2] virtio_console: silence a static checker warning [not found] ` <554C8221.9070304@bfs.de> @ 2015-05-08 9:47 ` Dan Carpenter 2015-05-08 9:56 ` Amit Shah [not found] ` <20150508095616.GB5527@grmbl.mre> 2 siblings, 0 replies; 8+ messages in thread From: Dan Carpenter @ 2015-05-08 9:47 UTC (permalink / raw) To: walter harms Cc: Amit Shah, Greg Kroah-Hartman, kernel-janitors, Arnd Bergmann, virtualization On Fri, May 08, 2015 at 11:30:09AM +0200, walter harms wrote: > > > Am 08.05.2015 11:16, schrieb Dan Carpenter: > > My static checker complains that this sprintf() can overflow but really > > it can't. Just silence the warning by using snprintf(). > > > > Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> > > --- > > v2: the overflow is not possible so just leave the buffer size alone and > > silence the warning with snprintf(). > > > > diff --git a/drivers/char/virtio_console.c b/drivers/char/virtio_console.c > > index 50754d20..8283989 100644 > > --- a/drivers/char/virtio_console.c > > +++ b/drivers/char/virtio_console.c > > @@ -1492,8 +1492,8 @@ static int add_port(struct ports_device *portdev, u32 id) > > * Finally, create the debugfs file that we can use to > > * inspect a port's state at any time > > */ > > - sprintf(debugfs_name, "vport%up%u", > > - port->portdev->vdev->index, id); > > + snprintf(debugfs_name, sizeof(debugfs_name), "vport%up%u", > > + port->portdev->vdev->index, id); > > > would it help to use %03u (or so) to make it more obvious ? > > Note: i prefer a leading 0 in my programms to make it more easy > to work with grep and friends. you may thing otherwise. That's an user API change so it's probably a bad idea. regards, dan carpenter ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [patch v2] virtio_console: silence a static checker warning [not found] ` <554C8221.9070304@bfs.de> 2015-05-08 9:47 ` Dan Carpenter @ 2015-05-08 9:56 ` Amit Shah [not found] ` <20150508095616.GB5527@grmbl.mre> 2 siblings, 0 replies; 8+ messages in thread From: Amit Shah @ 2015-05-08 9:56 UTC (permalink / raw) To: walter harms Cc: Greg Kroah-Hartman, kernel-janitors, Arnd Bergmann, Dan Carpenter, virtualization On (Fri) 08 May 2015 [11:30:09], walter harms wrote: > > > Am 08.05.2015 11:16, schrieb Dan Carpenter: > > My static checker complains that this sprintf() can overflow but really > > it can't. Just silence the warning by using snprintf(). > > > > Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> > > --- > > v2: the overflow is not possible so just leave the buffer size alone and > > silence the warning with snprintf(). > > > > diff --git a/drivers/char/virtio_console.c b/drivers/char/virtio_console.c > > index 50754d20..8283989 100644 > > --- a/drivers/char/virtio_console.c > > +++ b/drivers/char/virtio_console.c > > @@ -1492,8 +1492,8 @@ static int add_port(struct ports_device *portdev, u32 id) > > * Finally, create the debugfs file that we can use to > > * inspect a port's state at any time > > */ > > - sprintf(debugfs_name, "vport%up%u", > > - port->portdev->vdev->index, id); > > + snprintf(debugfs_name, sizeof(debugfs_name), "vport%up%u", > > + port->portdev->vdev->index, id); > > > would it help to use %03u (or so) to make it more obvious ? > > Note: i prefer a leading 0 in my programms to make it more easy > to work with grep and friends. you may thing otherwise. Well we've been exposing names like /dev/vport0p0, /dev/vport2p15, etc., and there might be scripts relying on such names, so that's one argument against it. However we do have pretty names that map to these ports via udev rules, but not sure if we should change the name just to prepend 0s. Amit ^ permalink raw reply [flat|nested] 8+ messages in thread
[parent not found: <20150508095616.GB5527@grmbl.mre>]
* Re: [patch v2] virtio_console: silence a static checker warning [not found] ` <20150508095616.GB5527@grmbl.mre> @ 2015-05-08 11:13 ` walter harms [not found] ` <554C9A52.4030707@bfs.de> 1 sibling, 0 replies; 8+ messages in thread From: walter harms @ 2015-05-08 11:13 UTC (permalink / raw) To: Amit Shah Cc: Greg Kroah-Hartman, kernel-janitors, Arnd Bergmann, Dan Carpenter, virtualization Am 08.05.2015 11:56, schrieb Amit Shah: > On (Fri) 08 May 2015 [11:30:09], walter harms wrote: >> >> >> Am 08.05.2015 11:16, schrieb Dan Carpenter: >>> My static checker complains that this sprintf() can overflow but really >>> it can't. Just silence the warning by using snprintf(). >>> >>> Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> >>> --- >>> v2: the overflow is not possible so just leave the buffer size alone and >>> silence the warning with snprintf(). >>> >>> diff --git a/drivers/char/virtio_console.c b/drivers/char/virtio_console.c >>> index 50754d20..8283989 100644 >>> --- a/drivers/char/virtio_console.c >>> +++ b/drivers/char/virtio_console.c >>> @@ -1492,8 +1492,8 @@ static int add_port(struct ports_device *portdev, u32 id) >>> * Finally, create the debugfs file that we can use to >>> * inspect a port's state at any time >>> */ >>> - sprintf(debugfs_name, "vport%up%u", >>> - port->portdev->vdev->index, id); >>> + snprintf(debugfs_name, sizeof(debugfs_name), "vport%up%u", >>> + port->portdev->vdev->index, id); >> >> >> would it help to use %03u (or so) to make it more obvious ? >> >> Note: i prefer a leading 0 in my programms to make it more easy >> to work with grep and friends. you may thing otherwise. > > Well we've been exposing names like /dev/vport0p0, /dev/vport2p15, > etc., and there might be scripts relying on such names, so that's one > argument against it. > > However we do have pretty names that map to these ports via udev > rules, but not sure if we should change the name just to prepend 0s. > > Amit > The basic idea was to limit the space, having leading zeros is my idea because i found this more convenient in the past. Using something like "%3u" will give static checkers a chance to detect the required max. space. re, wh ^ permalink raw reply [flat|nested] 8+ messages in thread
[parent not found: <554C9A52.4030707@bfs.de>]
* Re: [patch v2] virtio_console: silence a static checker warning [not found] ` <554C9A52.4030707@bfs.de> @ 2015-05-08 12:18 ` Dan Carpenter 0 siblings, 0 replies; 8+ messages in thread From: Dan Carpenter @ 2015-05-08 12:18 UTC (permalink / raw) To: walter harms Cc: Amit Shah, Greg Kroah-Hartman, kernel-janitors, Arnd Bergmann, virtualization On Fri, May 08, 2015 at 01:13:22PM +0200, walter harms wrote: > The basic idea was to limit the space, having leading zeros is my idea because > i found this more convenient in the past. Using something like "%3u" will give > static checkers a chance to detect the required max. space. How are you calculating the %3? The max for "id" is currently 31. To be honest, I'm not certain the max for ->index. It's something in qemu but I'm not sure what. Who is going to keep it updated? The %3 is sort of meaningless. The lower levels of the code just ignore it don't they? regards, dan carpenter ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2015-05-08 12:18 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20150508061902.GA14769@mwanda>
2015-05-08 6:31 ` [patch] virtio_console: use snprintf() for safety Amit Shah
2015-05-08 9:16 ` [patch v2] virtio_console: silence a static checker warning Dan Carpenter
2015-05-08 9:29 ` Amit Shah
2015-05-08 9:30 ` walter harms
[not found] ` <554C8221.9070304@bfs.de>
2015-05-08 9:47 ` Dan Carpenter
2015-05-08 9:56 ` Amit Shah
[not found] ` <20150508095616.GB5527@grmbl.mre>
2015-05-08 11:13 ` walter harms
[not found] ` <554C9A52.4030707@bfs.de>
2015-05-08 12:18 ` Dan Carpenter
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).