]> Cypherpunks repositories - gostls13.git/commitdiff
crypto/openpgp: fixed dangerous use of for loop variable
authorGideon Jan-Wessel Redelinghuys <gjredelinghuys@gmail.com>
Thu, 7 Jul 2011 00:49:03 +0000 (10:49 +1000)
committerRob Pike <r@golang.org>
Thu, 7 Jul 2011 00:49:03 +0000 (10:49 +1000)
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

src/pkg/crypto/openpgp/read.go

index 68301475245e9b658de2c52895798a233f8eee52..d95f613c62b9a7fb8a2b9159d9da05991ad6fc4e 100644 (file)
@@ -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