diff options
author | Gideon Jan-Wessel Redelinghuys <gjredelinghuys@gmail.com> | 2011-07-07 10:49:03 +1000 |
---|---|---|
committer | Gideon Jan-Wessel Redelinghuys <gjredelinghuys@gmail.com> | 2011-07-07 10:49:03 +1000 |
commit | 5be1c04a5140a4a00e78a954ff068e2e23565f2b (patch) | |
tree | d4eff8142f405501eae41d3a8928d44cdb5acf08 /src/pkg/crypto/openpgp | |
parent | 88167dec11e67a20fa6fe240f9d20b2c42c67471 (diff) | |
download | go-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')
-rw-r--r-- | src/pkg/crypto/openpgp/read.go | 5 |
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 |