On 07/18/2012 02:23 PM, Andreas Schwab wrote: > Eric Blake <ebl...@redhat.com> writes: > >> We need to document this issue if we decide this is important enough to >> fix in autoconf. But a patch for this issue seems like a reasonable >> improvement to me. Would you like to help write one? > > How about this? > > Andreas. > >>From e45f558825d68ae898153c33c710ac377016fc8d Mon Sep 17 00:00:00 2001 > From: Andreas Schwab <sch...@linux-m68k.org> > Date: Tue, 22 Nov 2011 00:36:46 +0100 > Subject: [PATCH] general: Sanitize IFS in EXIT trap > > IFS may be modified temporarily when the configure script receives a > signal. Make sure the EXIT trap uses the standard value. > > * lib/autoconf/general.m4: Sanitize IFS in trap.
I like it, and pushed. I also tweaked your listing in THANKS, assuming you prefer a newer email address these days. I think it's also worth a mention in the docs, so I'll follow up with: From 9debc540b081488f92a71d0850736786ec2d92c8 Mon Sep 17 00:00:00 2001 From: Eric Blake <ebl...@redhat.com> Date: Wed, 18 Jul 2012 14:53:24 -0600 Subject: [PATCH] doc: mention trap pitfalls Document why the previous patch was useful. * doc/autoconf.texi (Limitations of Builtins) <trap>: Mention the need to be defensive in trap handlers. --- doc/autoconf.texi | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/doc/autoconf.texi b/doc/autoconf.texi index 506d966..0dd4898 100644 --- a/doc/autoconf.texi +++ b/doc/autoconf.texi @@ -18346,6 +18346,18 @@ Limitations of Builtins 2 @end example +Be aware that a trap can be called from any number of places in your +script, and therefore the trap handler should not make assumptions about +shell state. For some examples, if your script temporarily modifies +@env{IFS}, then the trap should include an initialization back to its +typical value of space-tab-newline (autoconf does this for generated +@file{configure} files). Likewise, if your script changes the current +working directory at some point after the trap is installed, then your +trap cannot assume which directory it is in, and should begin by +changing directories to an absolute path if that is important to the +cleanup efforts (autotest does this for generated @file{testsuite} +files). + @item @command{true} @c ----------------- @prindex @command{true} -- 1.7.10.4 -- Eric Blake ebl...@redhat.com +1-919-301-3266 Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature