Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: Wordcode functions with empty bodies



Bart Schaefer wrote:

> This is mostly aimed at Sven ... just a reminder that the bug discussed in
> 11837-11841 and 11854-11859 appears to have something to do with wordcode
> compiled from a function whose body is the single token NULLTOK.

I had a little debugging session yesterday evening... I could
reproduce the segv with the `prompt' thing (although I had to invoke
`prompt bart' a second time with some other command before it to make
it go kaboom).

I could not, however, see any problems with bld_eprog(). In which way
do you think it produces garbled eprogs? (I mean, what do those eprogs 
look like?)

Placing some breakpoints in signals.c, I noticed a) that I think the
memory handling there seems to be wrong and b) that I don't understand 
the control flow (again), so I don't dare to fiddle with it.

About a): the freeeprogs() don't seem to get called. See also Felix'
last memory leak message (11766), describing a memory leak there. So I 
think the eprog copied at line 675 somehow survives too long, is freed 
elsewhere (does signals.c really keep the original?) and later
accessed. Or something. (In my reply to 11766 in 11796 I meant to say
that maybe Peter should have a look at it, him probably being the only 
one who really understands what goes on in signals.c or what should go 
on...)


Ok. If you could give me an easy example of how to make bld_eprog()
give garbled results, I'd be thankful. Just doing `functions[foo]=""'
at least gives me sensible results.

Bye
 Sven


--
Sven Wischnowsky                         wischnow@xxxxxxxxxxxxxxxxxxxxxxx



Messages sorted by: Reverse Date, Date, Thread, Author