Messages in this thread | ![/](/images/icornerl.gif) | | Subject | Re: [PATCH v2] drivers/base: Fix length checks in create_syslog_header()/dev_vprintk_emit() | From | Joe Perches <> | Date | Sun, 08 Jun 2014 19:16:10 -0700 |
| |
On Sun, 2014-06-08 at 23:51 +0100, Ben Hutchings wrote: > snprintf() returns the number of bytes that could have been written > (excluding the null), not the actual number of bytes written. Given a > long enough subsystem or device name, these functions will advance > beyond the end of the on-stack buffer in dev_vprintk_exit(), resulting > in an information leak or stack corruption. I don't know whether such > a long name is currently possible. > In case snprintf() returns a value >= the buffer size, do not add > structured logging information.
I believe this is guaranteed to be < 128, but I also suppose it'd be better to emit whatever buffer is < 128 and add a WARN_ON_ONCE instead.
| ![\](/images/icornerr.gif) |