aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGideon Jan-Wessel Redelinghuys <gjredelinghuys@gmail.com>2011-07-07 10:49:03 +1000
committerRob Pike <r@golang.org>2011-07-07 10:49:03 +1000
commit582d6e5848e030564cc131d345e61c29ed936ec5 (patch)
tree7d9f79e43fd7e8bafba523c4e3f20ddb2b673d77
parent7875ecb4629cf50d125dbfc7e9a744c1b4842a40 (diff)
downloadgo-582d6e5848e030564cc131d345e61c29ed936ec5.tar.gz
go-582d6e5848e030564cc131d345e61c29ed936ec5.zip
crypto/openpgp: fixed dangerous use of for loop variable
In function readSignedMessage a pointer to for loop variable 'key' was incorrectly being assigned to md.SignedBy. Changed so that md.SignedBy is pointing to the 'more correct' memory position. R=golang-dev, r, agl CC=golang-dev https://golang.org/cl/4631088
-rw-r--r--src/pkg/crypto/openpgp/read.go5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/pkg/crypto/openpgp/read.go b/src/pkg/crypto/openpgp/read.go
index 6830147524..d95f613c62 100644
--- a/src/pkg/crypto/openpgp/read.go
+++ b/src/pkg/crypto/openpgp/read.go
@@ -250,11 +250,12 @@ FindLiteralData:
md.IsSigned = true
md.SignedByKeyId = p.KeyId
keys := keyring.KeysById(p.KeyId)
- for _, key := range keys {
+ for i, key := range keys {
if key.SelfSignature.FlagsValid && !key.SelfSignature.FlagSign {
continue
}
- md.SignedBy = &key
+ md.SignedBy = &keys[i]
+ break
}
case *packet.LiteralData:
md.LiteralData = p