]> Cypherpunks repositories - gostls13.git/commitdiff
gc: put limit on size of exported recursive interface
authorLorenzo Stoakes <lstoakes@gmail.com>
Mon, 9 Jan 2012 16:48:53 +0000 (11:48 -0500)
committerRuss Cox <rsc@golang.org>
Mon, 9 Jan 2012 16:48:53 +0000 (11:48 -0500)
Prevents edge-case recursive types from consuming excessive memory.

Fixes #1909.

R=golang-dev, lvd, rsc
CC=golang-dev
https://golang.org/cl/5504108

src/cmd/gc/fmt.c

index f3be53c8fbf21bfdd4fedf1456b69f740ea6dbdb..3013d0d3293b78ff29d81d232704d403ea898859 100644 (file)
@@ -1450,7 +1450,7 @@ Tconv(Fmt *fp)
        if(t == T)
                return fmtstrcpy(fp, "<T>");
 
-       if(t->trecur > 4)
+       if(t->trecur > 4 || fp->nfmt > 1000)
                return fmtstrcpy(fp, "<...>");
 
        t->trecur++;