From 34fe8ce027768604b4e8f1d457f2f2208fa7de1d Mon Sep 17 00:00:00 2001 From: Alan Donovan Date: Wed, 30 Nov 2016 13:53:12 -0500 Subject: [PATCH] go/gcexportdata: better error when reading exportdata directly from archive Change-Id: Iaa6fe8a33bee852be4e2414c6db7ca5df17006b6 Reviewed-on: https://go-review.googlesource.com/33715 Reviewed-by: Robert Griesemer --- go/gcexportdata/gcexportdata.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/go/gcexportdata/gcexportdata.go b/go/gcexportdata/gcexportdata.go index 99a1eca1..572da5c9 100644 --- a/go/gcexportdata/gcexportdata.go +++ b/go/gcexportdata/gcexportdata.go @@ -78,6 +78,10 @@ func Read(in io.Reader, fset *token.FileSet, imports map[string]*types.Package, return nil, fmt.Errorf("reading export data for %q: %v", path, err) } + if bytes.HasPrefix(data, []byte("!")) { + return nil, fmt.Errorf("can't read export data for %q directly from an archive file (call gcexportdata.NewReader first to extract export data)", path) + } + // The App Engine Go runtime v1.6 uses the old export data format. // TODO(adonovan): delete once v1.7 has been around for a while. if bytes.HasPrefix(data, []byte("package ")) {