Re: [PATCH] drm: zynqmp_dp: Fix uninitialized variable in debugfs()
Sean Anderson <[email protected]>
| Newsgroups | org.kernel.vger.kernel-janitors,org.freedesktop.lists.dri-devel,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
On 5/28/26 02:18, Dan Carpenter wrote: > On Wed, May 27, 2026 at 08:31:59PM -0400, Sean Anderson wrote: >> On 5/25/26 03:16, Dan Carpenter wrote: >>> If the *ppos is non-zero then simple_write_to_buffer() will not >>> initialize the start of the buf[] buffer. It doesn't really make sense >>> to allow non-zero values for *ppos, so check for that at the start and >>> return -EINVAL. >> >> non-zero ppos seems to be handled properly by simple_write_to_buffer. >> > > It's not an overflow bug, it's an uninitialized variable bug. > > The simple_write_to_buffer() is designed to handle partial writes so it > leaves the first "written" (scare quotes) part of the string as is. But > in this case, we can't handle a partial write and the first part of > buf[] is left uninitialized. > > https://staticthinking.wordpress.com/2026/05/23/simple_write_to_buffer-is-complicated/ OK, that's a bit strange. Can you add this to the doc comment? I certainly missed it when looking around for appropriate functions. And I like the explicit copy_from_user variant better, especially since we are setting the nul-terminator anyway. > Also this appears to be dead code since fops_zynqmp_dp_pattern is never > used. It's of course used in zynqmp_dp_bridge_debugfs_init. --Sean