On Tue, Sep 19, 2023 at 05:12:09PM -0400, Kent Overstreet wrote:
> On Fri, Sep 15, 2023 at 03:56:26PM +0300, Dan Carpenter wrote:
> > The copy_to_user() function returns the number of bytes remaining to
> > be copied but we want to return -EFAULT to the user.
> >
> > Fixes: e0750d947352 ("bcachefs: Initial commit")
> > Signed-off-by: Dan Carpenter <[email protected]>
> > ---
> > fs/bcachefs/debug.c | 5 ++---
> > 1 file changed, 2 insertions(+), 3 deletions(-)
> >
> > diff --git a/fs/bcachefs/debug.c b/fs/bcachefs/debug.c
> > index 404148bd348a..e65c0ab0c9ad 100644
> > --- a/fs/bcachefs/debug.c
> > +++ b/fs/bcachefs/debug.c
> > @@ -319,10 +319,9 @@ static ssize_t flush_buf(struct dump_iter *i)
> > {
> > if (i->buf.pos) {
> > size_t bytes = min_t(size_t, i->buf.pos, i->size);
> > - int err = copy_to_user(i->ubuf, i->buf.buf, bytes);
> >
> > - if (err)
> > - return err;
> > + if (copy_to_user(i->ubuf, i->buf.buf, bytes))
> > + return -EFAULT;
> >
> > i->ret += bytes;
> > i->ubuf += bytes;
> > --
> > 2.39.2
> >
>
> Applying this fix instead:
>
> >From 60a714b71846c3ea95ccad6699658890b24969c2 Mon Sep 17 00:00:00 2001
> From: Kent Overstreet <[email protected]>
> Date: Tue, 19 Sep 2023 17:09:22 -0400
> Subject: [PATCH] bcachefs: Fix copy_to_user() usage in flush_buf()
>
> copy_to_user() returns the number of bytes successfully copied - not an
> errcode.
>
> Reported-by: Dan Carpenter <[email protected]>
> Signed-off-by: Kent Overstreet <[email protected]>
>
Perfect. Thanks!
regards,
dan carpenter