compiler: Avoid unsafe memcmp for nointerface comments.
authorIan Lance Taylor <ian@gcc.gnu.org>
Fri, 11 Sep 2015 21:41:30 +0000 (21:41 +0000)
committerIan Lance Taylor <ian@gcc.gnu.org>
Fri, 11 Sep 2015 21:41:30 +0000 (21:41 +0000)
    Fixes golang/go#11577.

    Reviewed-on: https://go-review.googlesource.com/14182

From-SVN: r227699

gcc/go/gofrontend/MERGE
gcc/go/gofrontend/lex.cc

index 6c22440c234a20a908e46d7b3d63f9aea2df7768..ef21b544a5fc90607079e2db3e8e01272a0cdf9e 100644 (file)
@@ -1,4 +1,4 @@
-352617bfe0a880febf5d2a87e89ea439c742ba18
+aea4360ca9c37f8e929f177ae7e42593ee62aa79
 
 The first line of this file holds the git revision number of the last
 merge done from the gofrontend repository.
index 67f780342660755a8bb1016e2af5016620f810dd..98d98da74ec09096ae4fe4b0e4610913abcb33c3 100644 (file)
@@ -1752,7 +1752,9 @@ Lex::skip_cpp_comment()
   // For field tracking analysis: a //go:nointerface comment means
   // that the next interface method should not be stored in the type
   // descriptor.  This permits it to be discarded if it is not needed.
-  if (this->lineoff_ == 2 && memcmp(p, "go:nointerface", 14) == 0)
+  if (this->lineoff_ == 2
+      && pend - p > 14
+      && memcmp(p, "go:nointerface", 14) == 0)
     this->saw_nointerface_ = true;
 
   while (p < pend)