summaryrefslogtreecommitdiff
path: root/src/pkg/crypto/openpgp/read.go
diff options
context:
space:
mode:
authorGideon Jan-Wessel Redelinghuys <gjredelinghuys@gmail.com>2011-07-07 10:49:03 +1000
committerGideon Jan-Wessel Redelinghuys <gjredelinghuys@gmail.com>2011-07-07 10:49:03 +1000
commit5be1c04a5140a4a00e78a954ff068e2e23565f2b (patch)
treed4eff8142f405501eae41d3a8928d44cdb5acf08 /src/pkg/crypto/openpgp/read.go
parent88167dec11e67a20fa6fe240f9d20b2c42c67471 (diff)
downloadgo-5be1c04a5140a4a00e78a954ff068e2e23565f2b.tar.gz
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 http://codereview.appspot.com/4631088 Committer: Rob Pike <r@golang.org>
Diffstat (limited to 'src/pkg/crypto/openpgp/read.go')
-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 683014752..d95f613c6 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