Re: PATCH: fd leak if pipe() is called with an invalid address.

From: Linus Torvalds
Date: Thu Jul 09 2009 - 23:31:18 EST




On Fri, 10 Jul 2009, Amerigo Wang wrote:

> On Thu, Jul 02, 2009 at 03:21:55PM +0800, Changli Gao wrote:
> >fd leak if pipe() is called with an invalid address.
> >
> >Though -EFAULT is returned, the file descriptors opened by pipe() call
> >are left open.
> >
> >Signed-off-by: Changli Gao <xiaosuo@xxxxxxxxx>
> >----
> >
> > x86/ia32/sys_ia32.c | 5 ++++-
> > xtensa/kernel/syscall.c | 5 ++++-
> > 2 files changed, 8 insertions(+), 2 deletions(-)
> >
> >
> >--- arch/x86/ia32/sys_ia32.c.orig 2009-07-02 15:08:39.000000000 +0800
> >+++ arch/x86/ia32/sys_ia32.c 2009-07-02 15:09:49.000000000 +0800
>
> This patch is not correctly made... You need to make the patch in the
> _upper_ directory of the top source code tree (if you don't use git),
> so that we can apply it with 'patch -p1 < XXX'.
>
> Probably this is the reason why Linus still doesn't merge it.

No, the main reason I haven't merged it is that I don't think the patch is
worth it.

If you give a bad area to pipe(), there's no point in closign the file
descriptors. It's a user-space bug. You got your file descriptors, you
just don't know what the hell they are, because your program is sh*t.
There's no point in the kernel trying to clean up, because the cleaned-up
state is not any better.

Linus
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/