ash: Avoid overflow for very long variable name
authorDenys Vlasenko <vda.linux@googlemail.com>
Fri, 30 Sep 2016 09:35:54 +0000 (11:35 +0200)
committerDenys Vlasenko <vda.linux@googlemail.com>
Fri, 30 Sep 2016 09:35:54 +0000 (11:35 +0200)
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>
shell/ash.c

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