diff options
author | Eric Blake <eblake@redhat.com> | 2010-08-27 10:59:40 -0600 |
---|---|---|
committer | Eric Blake <eblake@redhat.com> | 2010-08-27 10:59:40 -0600 |
commit | 55f532e539427ff5829790fd71b6f8c6342b141a (patch) | |
tree | 9098f7d352ad88b8b5276147fc9c23bf803846ec /lib/m4sugar/m4sh.m4 | |
parent | d1bea5123b8ecb406fbeabbe70552271f60de8e7 (diff) | |
download | autoconf-55f532e539427ff5829790fd71b6f8c6342b141a.tar.gz |
m4sh: protect LINENO against stray macro
* lib/m4sugar/m4sh.m4 (_AS_LINENO_PREPARE): Double quote entire
sed script, to avoid issue uncovered by automake testsuite where
'b' was an m4 macro that broke execution on dash.
Reported by Stefano Lattarini.
Signed-off-by: Eric Blake <eblake@redhat.com>
Diffstat (limited to 'lib/m4sugar/m4sh.m4')
-rw-r--r-- | lib/m4sugar/m4sh.m4 | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/lib/m4sugar/m4sh.m4 b/lib/m4sugar/m4sh.m4 index 8343b259..ef99cb5a 100644 --- a/lib/m4sugar/m4sh.m4 +++ b/lib/m4sugar/m4sh.m4 @@ -1138,23 +1138,23 @@ dnl trailing '-' during substitution so that $LINENO is not a special dnl case at line end. (Raja R Harinath suggested sed '=', and Paul dnl Eggert wrote the scripts with optimization help from Paolo Bonzini). [_AS_LINENO_WORKS || { - # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) +[ # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p - /[[$]]LINENO/= + /[$]LINENO/= ' <$as_myself | sed ' - s/[[$]]LINENO.*/&-/ + s/[$]LINENO.*/&-/ t lineno b :lineno N :loop - s/[[$]]LINENO\([[^'$as_cr_alnum'_]].*\n\)\(.*\)/\2\1\2/ + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && - chmod +x "$as_me.lineno" || + chmod +x "$as_me.lineno"] || AS_ERROR([cannot create $as_me.lineno; rerun with a POSIX shell]) # Don't try to exec as it changes $[0], causing all sort of problems |