J. Bruce Fields wrote:
On Fri, Jan 18, 2008 at 01:12:03PM -0500, Peter Staubach wrote:
Chuck Lever wrote:
On Jan 18, 2008, at 12:30 PM, Peter Staubach wrote:
I can probably imagine a situation where the pathname resolution
would never finish, but I am not sure that it could ever happen
in nature.
Unless someone is doing something malicious. Or if the server is
repeatedly returning ESTALE for some reason.
If the server is repeatedly returning ESTALE, then the pathname
resolution will fail to make progress and give up, return ENOENT
to the user level.
A malicious user on the network can cause so many other problems
than just something like this too. But, in this case, the user
would have to predict why and when the client was issuing a
specific operation and know whether or not to return ESTALE.
This seems quite far fetched and quite unlikely to me.
Any idea what the consequences would be in this case? It at least
shouldn't overflow the stack, or freeze the whole machine (because it
spins indefinitely under some crucial lock), or panic, etc. (If the one
filesystem just becomes unusable--well, fine, what better can you hope
for in the presence of a malicious server or network?)
Assuming that such a user could precisely and accurately predict
when to return ESTALE, the particular system call would just stay
in the kernel, sending out requests to the NFS server.
It wouldn't overflow the stack because the recovery is done by
looping and not by recursion and unless there is a bug that needs
to be fixed, all necessary resources are released before the
retries occur. The machine wouldn't freeze because as soon as
the request is sent, the process blocks and some other process
can be scheduled. The process should be interruptible, so even
it could be signaled to stop the activity.
It seems to me that mostly, the file system will become unusable,
but as Bruce points out, what do you expect in the presence of a
malicious entity? If such are a concern, then measures such as
stronger security can be employed to prevent them from wreaking
havoc.
Thanx...
ps
-
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html