ash: Avoid overflow for very long variable name

Upstream commit:

    Date: Tue, 3 Jul 2012 17:32:33 +0800
    Avoid overflow for very long variable name

    Otherwise, this:
      $ perl -le 'print "v"x(2**31+1) ."=1"' | dash
    provokes integer overflow

    Signed-off-by: Jim Meyering <meyering@redhat.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko 2016-09-30 11:35:54 +02:00
parent b6838b520a
commit 50e6d42c19

View File

@ -11274,7 +11274,7 @@ readtoken1(int c, int syntax, char *eofmark, int striptabs)
/* NB: syntax parameter fits into smallint */ /* NB: syntax parameter fits into smallint */
/* c parameter is an unsigned char or PEOF or PEOA */ /* c parameter is an unsigned char or PEOF or PEOA */
char *out; char *out;
int len; size_t len;
char line[EOFMARKLEN + 1]; char line[EOFMARKLEN + 1];
struct nodelist *bqlist; struct nodelist *bqlist;
smallint quotef; smallint quotef;