zsh-workers
 help / color / mirror / code / Atom feed
* 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).