* More trap-handling crashes
@ 2000-06-10 18:22 Bart Schaefer
2000-06-10 18:56 ` Bart Schaefer
0 siblings, 1 reply; 3+ messages in thread
From: Bart Schaefer @ 2000-06-10 18:22 UTC (permalink / raw)
To: zsh-workers
The quickest way to see it is as follows:
zagzig[81] Src/zsh -f
zagzig% autoload -U promptinit
zagzig% promptinit
zagzig% prompt bart
zagzig [prompt bart] /usr/src/local/zsh/zsh-3.1.9-build 00-06-10 10:49AM
zagzig% prompt bart off
(zsh consumes all available memory, then crashes)
The problem is that here:
#0 dosavetrap (sig=28, level=3) at ../../zsh-3.1.6/Src/signals.c:675
#1 0x809312f in removetrap (sig=28) at ../../zsh-3.1.6/Src/signals.c:756
#2 0x8093080 in unsettrap (sig=28) at ../../zsh-3.1.6/Src/signals.c:733
#3 0x8092fb1 in settrap (sig=28, l=0x8124c10)
at ../../zsh-3.1.6/Src/signals.c:700
#4 0x80a613f in setfunction (name=0x400e23d8 "TRAPWINCH", val=0x8124bc8 "",
dis=0) at ../../../zsh-3.1.6/Src/Modules/parameter.c:357
(More stack frames follow...)
sigfuncs[sig] points to a completely garbaged eprog with a huge `len' field,
so zsh tried to allocate roughly a gigabyte of memory.
localtraps is not set, and there's no exit trap involved. I suspect this
is related to the (root cause of the) TRAPEXIT crash that Clint patched
recently.
--
Bart Schaefer Brass Lantern Enterprises
http://www.well.com/user/barts http://www.brasslantern.com
Zsh: http://www.zsh.org | PHPerl Project: http://phperl.sourceforge.net
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: More trap-handling crashes
2000-06-10 18:22 More trap-handling crashes Bart Schaefer
@ 2000-06-10 18:56 ` Bart Schaefer
2000-06-10 19:28 ` Bart Schaefer
0 siblings, 1 reply; 3+ messages in thread
From: Bart Schaefer @ 2000-06-10 18:56 UTC (permalink / raw)
To: zsh-workers
On Jun 10, 6:22pm, Bart Schaefer wrote:
} Subject: More trap-handling crashes
}
} The quickest way to see it is as follows:
}
} zagzig% prompt bart off
} (zsh consumes all available memory, then crashes)
}
} localtraps is not set, and there's no exit trap involved.
I take it back: Localtraps *IS* set, because `prompt' calls `emulate -L'.
} I suspect this is related to the (root cause of the) TRAPEXIT crash
} that Clint patched recently.
I'm now completely convinced that the two are connected, and that testing
for (st->list != NULL) is not a sufficient fix.
--
Bart Schaefer Brass Lantern Enterprises
http://www.well.com/user/barts http://www.brasslantern.com
Zsh: http://www.zsh.org | PHPerl Project: http://phperl.sourceforge.net
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: More trap-handling crashes
2000-06-10 18:56 ` Bart Schaefer
@ 2000-06-10 19:28 ` Bart Schaefer
0 siblings, 0 replies; 3+ messages in thread
From: Bart Schaefer @ 2000-06-10 19:28 UTC (permalink / raw)
To: zsh-workers
On Jun 10, 6:56pm, Bart Schaefer wrote:
}
} On Jun 10, 6:22pm, Bart Schaefer wrote:
} } I suspect this is related to the (root cause of the) TRAPEXIT crash
} } that Clint patched recently.
}
} I'm now completely convinced that the two are connected, and that testing
} for (st->list != NULL) is not a sufficient fix.
I've traced this to the point where parse.c:bld_eprog() does something
horribly wrong when handed a parse consisting of nothing but NULLTOK,
and now I'm beyond my understanding of what's supposed to be going on.
However, it sure looks like a bad interaction between the trap scoping
mechanism and eprogs for functions with empty bodies.
--
Bart Schaefer Brass Lantern Enterprises
http://www.well.com/user/barts http://www.brasslantern.com
Zsh: http://www.zsh.org | PHPerl Project: http://phperl.sourceforge.net
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2000-06-10 19:31 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2000-06-10 18:22 More trap-handling crashes Bart Schaefer
2000-06-10 18:56 ` Bart Schaefer
2000-06-10 19:28 ` Bart Schaefer
Code repositories for project(s) associated with this public inbox
https://git.vuxu.org/mirror/zsh/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).