problem of memory leak in re-direction (shell/ash.c: expredir)
Rich Felker
dalias at libc.org
Mon Dec 15 07:04:28 UTC 2014
On Mon, Dec 15, 2014 at 02:55:41PM +0800, shengyong wrote:
> hi, all
> I meet the memory leak problem when use re-direction in a reading-loop, like:
>
> while true
> do
> while true
> do
> break
> done < /dev/null
> done
>
> There is some discussion on this issue:
> * http://lists.busybox.net/pipermail/busybox/2012-December/078738.html
> * https://bugs.busybox.net/show_bug.cgi?id=5822
>
> But it is still not fixed in the later versions?
AFAIK it is not fixed. As I stated in the bug report you linked, a
proper fix would require dropping the (semantically invalid) use of
the current stack-like allocation strategy and replacing it with some
sort of reference-tree structure that allows freeing of allocations
other than the most-recent. The easiest way I can see to do this would
be writing an allocator similar to talloc or adapting talloc itself if
the license and code size are acceptable. But in any case I think it's
a non-trivial task and nobody's volunteered to do it.
Rich
More information about the busybox
mailing list