From d6902b2ad57f2d9af8a95e6ba269764c13d44960 Mon Sep 17 00:00:00 2001 From: Robert Griesemer Date: Mon, 9 Dec 2013 15:43:31 -0800 Subject: [PATCH] go/tools/go/gcimporter: avoid possible endless loops in case of errors R=adonovan CC=golang-dev https://golang.org/cl/39630045 --- go/gcimporter/gcimporter.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/go/gcimporter/gcimporter.go b/go/gcimporter/gcimporter.go index d2a79ae3..eb7cb30b 100644 --- a/go/gcimporter/gcimporter.go +++ b/go/gcimporter/gcimporter.go @@ -488,7 +488,7 @@ func (p *parser) parseStructType() types.Type { p.expectKeyword("struct") p.expect('{') - for i := 0; p.tok != '}'; i++ { + for i := 0; p.tok != '}' && p.tok != scanner.EOF; i++ { if i > 0 { p.expect(';') } @@ -535,7 +535,7 @@ func (p *parser) parseParameter() (par *types.Var, isVariadic bool) { // func (p *parser) parseParameters() (list []*types.Var, isVariadic bool) { p.expect('(') - for p.tok != ')' { + for p.tok != ')' && p.tok != scanner.EOF { if len(list) > 0 { p.expect(',') } @@ -585,7 +585,7 @@ func (p *parser) parseInterfaceType() types.Type { p.expectKeyword("interface") p.expect('{') - for i := 0; p.tok != '}'; i++ { + for i := 0; p.tok != '}' && p.tok != scanner.EOF; i++ { if i > 0 { p.expect(';') }