From: Andy Isaacson <adi@hexapodia.org>
To: Grzegorz Nosek <grzegorz.nosek@gmail.com>
Cc: linux-kernel@vger.kernel.org
Subject: Re: sys_sendfile oops in 2.6.13?
Date: Tue, 11 Oct 2005 21:00:06 -0700 [thread overview]
Message-ID: <20051012040006.GA31099@hexapodia.org> (raw)
In-Reply-To: <121a28810510110156q1369b9dg@mail.gmail.com>
On Tue, Oct 11, 2005 at 10:56:43AM +0200, Grzegorz Nosek wrote:
> I found an (IMHO) silly bug in do_sendfile in 2.6.13.x kernels (at
> least in 2.6.13.3 and .4, didn't backtrack to find where it
> originated). Without the patch all I apparently get from sys_sendfile
> is an oops due to a call in sys_sendfile with ppos being NULL. With the
> patch it works OK. Noticed in vsftpd.
>
> @@ -719,7 +719,7 @@
> current->syscr++;
> current->syscw++;
>
> - if (*ppos > max)
> + if (ppos && *ppos > max)
That change can't fix a bug in 2.6.13, because ppos is forced to be
non-null further up the file:
622 static ssize_t do_sendfile(int out_fd, int in_fd, loff_t *ppos,
...
647 if (!ppos)
648 ppos = &in_file->f_pos;
...
684 pos = *ppos;
...
701 current->syscr++;
702 current->syscw++;
703
704 if (*ppos > max)
705 retval = -EOVERFLOW;
(line numbers from 2.6.13.)
So there must be something else at work. Perhaps your patches?
On Tue, Oct 11, 2005 at 04:53:47PM +0200, Jiri Slaby wrote:
> I don't know the code surrounding this, but shouldn't be this
> (!ppos || *ppos > max)?
That would be wrong, too; if it were valid to call in with ppos==0, you
wouldn't want to return EOVERFLOW; and if ppos==0 were not valid and you
wanted to return an error, EOVERFLOW would be the wrong error to return.
-andy
next prev parent reply other threads:[~2005-10-12 4:00 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-10-11 8:56 sys_sendfile oops in 2.6.13? Grzegorz Nosek
2005-10-11 14:53 ` Jiri Slaby
2005-10-12 4:00 ` Andy Isaacson [this message]
2005-10-12 9:11 ` Grzegorz Nosek
2005-10-12 17:38 ` Chris Wright
2005-10-12 20:06 ` Grzegorz Nosek
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20051012040006.GA31099@hexapodia.org \
--to=adi@hexapodia.org \
--cc=grzegorz.nosek@gmail.com \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.