summaryrefslogtreecommitdiff
path: root/asserts
diff options
authorMichael Vogt <mvo@ubuntu.com>2016-09-12 17:00:41 +0200
committerMichael Vogt <mvo@ubuntu.com>2016-09-12 17:00:41 +0200
commit3153cf292011583d8373a649e96db24db7b12a16 (patch)
treef5f8b98a50bd60ad10b611856d5870ee4fc7bacb /asserts
parent7f72b712c110fce18309fef2d7238f040462d382 (diff)
parentbd9dd115f7dde95b5c69aa428fc5814e479e36c6 (diff)
Merge branch 'bugfix/gnupg2' into bugfix/autopkgtest-yakkety
Diffstat (limited to 'asserts')
-rw-r--r--asserts/gpgkeypairmgr.go11
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 {