Re: [patch 7/8] fdmap v2 - implement sys_socket2

From: Linus Torvalds
Date: Sun Jun 10 2007 - 01:07:59 EST




On Sat, 9 Jun 2007, dean gaudet wrote:
>
> for an example of a library wanting to cache an open fd ... and failing
> miserably at protecting itself from the application closing its fd read:

Heh.

Why the hell doesn't that thing just do an "fstat()" on the thing, and
compare the inode number? Not that I would guarantee that it works either
for a socket, but it would seem to make more sense than what it apparently
does now, and I think it should work at least on Linux.

(Ie linux will give fake "st_ino" numbers to sockets. Whether anybody else
will do that, I have no friggin clue. And you probably shouldn't depend on
it even under Linux, but damn, despite all of those issues, it's likely
better and more logical than what libnss-ldap apparently does now ;)

Doing a "fstat()" call is how you generally test if two fd's point to the
same file. Doing the same thing for sockets would at least be half-way
sane, and even if the OS doesn't give new sockets individual st_ino
numbers, they probably won't be *changing*.

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/