From efcc50dfdc94c82ee0292bf71992ecb7c0123061 Mon Sep 17 00:00:00 2001 From: Michael Stapelberg Date: Tue, 14 May 2013 18:39:35 +0200 Subject: Imported Upstream version 1.1 --- src/cmd/gc/sinit.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'src/cmd/gc/sinit.c') diff --git a/src/cmd/gc/sinit.c b/src/cmd/gc/sinit.c index 353fc00ce..f8c61828c 100644 --- a/src/cmd/gc/sinit.c +++ b/src/cmd/gc/sinit.c @@ -801,7 +801,8 @@ maplit(int ctxt, Node *n, Node *var, NodeList **init) { Node *r, *a; NodeList *l; - int nerr, b; + int nerr; + int64 b; Type *t, *tk, *tv, *t1; Node *vstat, *index, *value; Sym *syma, *symb; @@ -1142,7 +1143,10 @@ stataddr(Node *nam, Node *n) l = getlit(n->right); if(l < 0) break; - nam->xoffset += l*n->type->width; + // Check for overflow. + if(n->type->width != 0 && MAXWIDTH/n->type->width <= l) + break; + nam->xoffset += l*n->type->width; nam->type = n->type; return 1; } -- cgit v1.2.3