From: Bharata B Rao <bharata@in.ibm.com>
To: Andrew Morton <akpm@osdl.org>
Cc: "Sébastien Dugué" <sebastien.dugue@bull.net>,
linux-kernel <linux-kernel@vger.kernel.org>,
linux-aio <linux-aio@kvack.org>,
"Christoph Hellwig" <hch@infradead.org>,
"Suparna Bhattacharya" <suparna@in.ibm.com>,
"Ulrich Drepper" <drepper@redhat.com>,
"Zach Brown" <zach.brown@oracle.com>,
"Jean Pierre Dion" <jean-pierre.dion@bull.net>,
"Badari Pulavarty" <pbadari@us.ibm.com>
Subject: Re: [PATCH -mm 5/5][AIO] - Add listio syscall support
Date: Wed, 24 Jan 2007 23:46:35 +0530 [thread overview]
Message-ID: <20070124181635.GC8394@in.ibm.com> (raw)
In-Reply-To: <20070123220433.018b40b6.akpm@osdl.org>
On Tue, Jan 23, 2007 at 10:04:33PM -0800, Andrew Morton wrote:
> On Wed, 17 Jan 2007 10:55:54 +0100
> Sébastien Dugué <sebastien.dugue@bull.net> wrote:
>
> > +void lio_check(struct lio_event *lio)
> > +{
> > + int ret;
> > +
> > + ret = atomic_dec_and_test(&lio->lio_users);
> > +
> > + if (unlikely(ret) && lio->lio_notify.notify != SIGEV_NONE) {
> > + /* last one -> notify process */
> > + if (aio_send_signal(&lio->lio_notify))
> > + sigqueue_free(lio->lio_notify.sigq);
> > + kfree(lio);
> > + }
> > +}
>
> That's a scary function. It may (or may not) free the memory at lio,
> returning no indication to the caller whether or not that memory is still
> allocated. This is most peculiar - are you really sure there's no
> potential for a use-after-free here?
Yes, this function looks peculiar. Actually lio gets freed here only
for LIO_NOWAIT case. For LIO_WAIT case, it gets freed at the end
of sys_lio_submit() after it is done waiting for all io's.
But yes, all this is not very obvious.
>
> The function is poorly named: I'd expect something called "foo_check" to
> not have any side-effects. This one has gross side-effects. Want to think
> up a better name, please?
>
> And given that this function has global scope, perhaps a little explanatory
> comment is in order?
>
> > +struct lio_event *lio_create(struct sigevent __user *user_event,
> > + int mode)
>
> Here too.
Ok, will try to take care of all these in the next iteration.
Thanks for your review.
Regards,
Bharata.
prev parent reply other threads:[~2007-01-24 18:09 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20070117104601.36b2ab18@frecb000686>
2007-01-17 9:48 ` [PATCH -mm 1/5][AIO] - Rework compat_sys_io_submit Sébastien Dugué
2007-01-17 9:48 ` [PATCH -mm 2/5][AIO] - fix aio.h includes Sébastien Dugué
2007-01-17 9:49 ` [PATCH -mm 3/5][AIO] - Make good_sigevent non-static Sébastien Dugué
2007-01-17 9:50 ` [PATCH -mm 4/5][AIO] - AIO completion signal notification Sébastien Dugué
2007-01-24 5:35 ` Andrew Morton
2007-01-24 11:11 ` Sébastien Dugué
2007-01-25 5:42 ` Christoph Hellwig
2007-01-25 8:46 ` Sébastien Dugué
2007-01-17 9:55 ` [PATCH -mm 5/5][AIO] - Add listio syscall support Sébastien Dugué
2007-01-24 5:50 ` Andrew Morton
2007-01-24 11:51 ` Sébastien Dugué
2007-01-24 5:53 ` Andrew Morton
2007-01-24 9:52 ` Laurent Vivier
2007-01-24 11:53 ` Sébastien Dugué
2007-01-24 6:04 ` Andrew Morton
2007-01-24 12:02 ` Sébastien Dugué
2007-01-24 18:16 ` Bharata B Rao [this message]
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=20070124181635.GC8394@in.ibm.com \
--to=bharata@in.ibm.com \
--cc=akpm@osdl.org \
--cc=drepper@redhat.com \
--cc=hch@infradead.org \
--cc=jean-pierre.dion@bull.net \
--cc=linux-aio@kvack.org \
--cc=linux-kernel@vger.kernel.org \
--cc=pbadari@us.ibm.com \
--cc=sebastien.dugue@bull.net \
--cc=suparna@in.ibm.com \
--cc=zach.brown@oracle.com \
/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.