Author: jilles
Date: Sat Apr  3 20:35:39 2010
New Revision: 206144
URL: http://svn.freebsd.org/changeset/base/206144

Log:
  sh: Treat unexpected newlines in substitutions as a syntax error.
  
  The old approach was wrong because PS2 was not used and seems unlikely to
  parse extensions (ksh93's ${ COMMAND} may well fail to parse).
  
  Exp-run done by: erwin (with some other sh(1) changes)

Modified:
  head/bin/sh/parser.c

Modified: head/bin/sh/parser.c
==============================================================================
--- head/bin/sh/parser.c        Sat Apr  3 20:14:10 2010        (r206143)
+++ head/bin/sh/parser.c        Sat Apr  3 20:35:39 2010        (r206144)
@@ -1401,6 +1401,8 @@ parsesub: {
                                subtype = VSERROR;
                                if (c == '}')
                                        pungetc();
+                               else if (c == '\n' || c == PEOF)
+                                       synerror("Unexpected end of line in 
substitution");
                                else
                                        USTPUTC(c, out);
                        } else {
@@ -1417,6 +1419,8 @@ parsesub: {
                        default:
                                p = strchr(types, c);
                                if (p == NULL) {
+                                       if (c == '\n' || c == PEOF)
+                                               synerror("Unexpected end of 
line in substitution");
                                        if (flags == VSNUL)
                                                STPUTC(':', out);
                                        STPUTC(c, out);
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to