Re: [PATCH] iio: backend: fix uninitialized data in debugfs
From: Dan Carpenter
Date: Wed Jun 10 2026 - 03:15:16 EST
On Mon, Jun 08, 2026 at 09:31:14PM +0100, Nuno Sá wrote:
> On Fri, 2026-06-05 at 11:28 +0300, Andy Shevchenko wrote:
> > On Fri, Jun 05, 2026 at 09:12:38AM +0300, Dan Carpenter wrote:
> > > On Thu, Jun 04, 2026 at 05:55:08PM +0300, Andy Shevchenko wrote:
> > > > On Thu, Jun 04, 2026 at 01:42:11PM +0300, Dan Carpenter wrote:
> > > > > On Thu, Jun 04, 2026 at 01:38:50PM +0300, Dan Carpenter wrote:
> > > > > > 168 ret = sscanf(buf, "%i %i", &back->cached_reg_addr, &val);
> > > > > > ^^^
> > > > > > Uninitialized variable.
> > > > >
> > > > > s/variable/data/.
> > > >
> > > > With what I asked in the previous reply and what you explained there
> > > > (thanks, btw!) I still think your patches are not fully correct. They
> > > > will require to atomically write all or nothing. If we want support
> > > > partial writes we need to go with that differently (reset ppos when
> > > > we got enough or more than enough data).
> > >
> > > Requiring writes to syfs and debugfs be atomic is pretty normal and
> > > works well in practice. These are very small writes.
> >
> > Perhaps. In any case your patch will break existing partial writes, right?
> > I'm still considering that resetting ppos is the right thing to do. Just
> > need to find where the best place is to do that.
>
> I think anyone doing partial writes on a debugfs interface like this one is very
> unlikely but it is a fair point, yes. But can't we be more relaxed on debugfs? No
> userspace app should be relying on debugfs in order to work (though I know that
> actually happens).
>
> Anyways, this is one of those interesting edge cases and easy enough to get wrong. I
> guess we should either:
>
> 1. Improve simple_write_to_buffer() docs;
> 2. Or come up with a new simple_write_once_to_buffer() helper?
The right function is copy_from_user(). The point of
simple_write_to_buffer() is to support partial writes and in many
cases that just doesn't make sense.
regards,
dan carpenter