diff options
| author | Michael Vogt <mvo@ubuntu.com> | 2016-09-12 17:00:41 +0200 |
|---|---|---|
| committer | Michael Vogt <mvo@ubuntu.com> | 2016-09-12 17:00:41 +0200 |
| commit | 3153cf292011583d8373a649e96db24db7b12a16 (patch) | |
| tree | f5f8b98a50bd60ad10b611856d5870ee4fc7bacb /asserts | |
| parent | 7f72b712c110fce18309fef2d7238f040462d382 (diff) | |
| parent | bd9dd115f7dde95b5c69aa428fc5814e479e36c6 (diff) | |
Merge branch 'bugfix/gnupg2' into bugfix/autopkgtest-yakkety
Diffstat (limited to 'asserts')
| -rw-r--r-- | asserts/gpgkeypairmgr.go | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/asserts/gpgkeypairmgr.go b/asserts/gpgkeypairmgr.go index f186b25acf..30499e6621 100644 --- a/asserts/gpgkeypairmgr.go +++ b/asserts/gpgkeypairmgr.go @@ -190,12 +190,13 @@ func (gkm *GPGKeypairManager) Walk(consider func(privk PrivateKey, fingerprint s var privKey PrivateKey // look for fpr:, uid: lines, order may vary and gpg2.1 // may springle additional lines in (like gpr:) + Loop: for k := j + 1; k < n && !strings.HasPrefix(lines[k], "sec:"); k++ { switch { case strings.HasPrefix(lines[k], "fpr:"): fprFields := strings.Split(lines[k], ":") if len(fprFields) < 10 { - break + break Loop } fpr = fprFields[9] if !strings.HasSuffix(fpr, keyID) { @@ -207,10 +208,16 @@ func (gkm *GPGKeypairManager) Walk(consider func(privk PrivateKey, fingerprint s } case strings.HasPrefix(lines[k], "uid:"): uidFields := strings.Split(lines[k], ":") + if len(uidFields) < 10 { + break Loop + } uid = uidFields[9] - break } } + // sanity checking + if privKey == nil || uid == "" { + continue + } // collected it all err = consider(privKey, fpr, uid) if err != nil { |
