diff options
author | Gideon Jan-Wessel Redelinghuys <gjredelinghuys@gmail.com> | 2011-07-07 10:49:03 +1000 |
---|---|---|
committer | Rob Pike <r@golang.org> | 2011-07-07 10:49:03 +1000 |
commit | 582d6e5848e030564cc131d345e61c29ed936ec5 (patch) | |
tree | 7d9f79e43fd7e8bafba523c4e3f20ddb2b673d77 | |
parent | 7875ecb4629cf50d125dbfc7e9a744c1b4842a40 (diff) | |
download | go-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.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 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 |