Re: Potentially unbounded allocations in seq_read?

Al Viro
2013-12-12T13:50:02Z

On Thu, Dec 12, 2013 at 01:40:40PM +0000, Tvrtko Ursulin wrote:

> So this is the story... task_mmu.c:show_map_vma() calls seq_path. There
> we have a d_path call which returns -ENAMETOOLONG and keeps doing so
> even though the buffer grows to huge proportions. It is something on
> tmpfs, don't know what.
>
> But in the meantime, shouldn't seq_path be a bit more considerate on
> this particular error and not mark the state as "could not fit" forever?
> Perhaps it would make sense to limit it a bit?
>
> Or even more so, on errors _other_ than -ENAMETOOLONG it will at the
> moment mark the result as "need more space". That also sounds broken to
> me.

a) *what* errors other than -ENAMETOOLONG?
b) d_path() not fitting into 2Mb is definitely a bug. If you really have
managed to get a dentry tree 1 million levels deep, you have much worse
problems.
c) which kernel version it is?