Re: [PATCH] fix oops in namespace.c

viro@parcelfarce.linux.theplanet.co.uk
Mon, 19 May 2003 19:20:16 +0100


On Mon, May 19, 2003 at 12:57:37AM +0200, Andries.Brouwer@cwi.nl wrote:
> Number four in the series of namespace.c fixes:
>
> A familar type of Oops: d_path() can return an error ENAMETOOLONG,
> and if we fail to test a segfault occurs.
>
> So we must test. What we do is a different matter.
> Rather arbitrarily I return the string " (too long)"
> for use in /proc/mounts.

There's a better fix. Since we are going to use seq_...() anyway,
we both have a buffer and length. Moreover, if there's not enough
space to store the result, generic seq_file code will take care
about expanding buffer and calling us again.

IOW, we need to add seq_path(seq_file *, vfsmount *, dentry *) that would
DTRT. That would have a benefit of avoiding extra allocation/freeing.

I'll send such patch in ~20 minutes. BTW, it's also needed for /proc/swaps
and can be used for /proc/<pid>/maps if we switch it to seq_file (worth
doing anyway).

PS: math.psu.edu account is alive, but I'm not checking it often these
days, so Cc there is not too useful.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/