mirror of https://github.com/docker/docs.git
Do not clean up a session if there is no session.
Signed-off-by: Ying Li <ying.li@docker.com> Signed-off-by: David Lawrence <david.lawrence@docker.com> Signed-off-by: Ying Li <ying.li@docker.com> (github: endophage)
This commit is contained in:
parent
cee92fa363
commit
4b7fefd5ef
2
Makefile
2
Makefile
|
@ -15,7 +15,7 @@ GO_LDFLAGS=-ldflags "-w $(CTIMEVAR)"
|
|||
GO_LDFLAGS_STATIC=-ldflags "-w $(CTIMEVAR) -extldflags -static"
|
||||
GOOSES = darwin freebsd linux
|
||||
GOARCHS = amd64
|
||||
NOTARY_BUILDTAGS ?= "pkcs11"
|
||||
NOTARY_BUILDTAGS ?= pkcs11
|
||||
GO_EXC = go
|
||||
NOTARYDIR := /go/src/github.com/docker/notary
|
||||
|
||||
|
|
|
@ -771,7 +771,11 @@ func cleanup(ctx IPKCS11Ctx, session pkcs11.SessionHandle) {
|
|||
if err != nil {
|
||||
logrus.Debugf("Error closing session: %s", err.Error())
|
||||
}
|
||||
err = ctx.Finalize()
|
||||
finalizeAndDestroy(ctx)
|
||||
}
|
||||
|
||||
func finalizeAndDestroy(ctx IPKCS11Ctx) {
|
||||
err := ctx.Finalize()
|
||||
if err != nil {
|
||||
logrus.Debugf("Error finalizing: %s", err.Error())
|
||||
}
|
||||
|
@ -792,18 +796,18 @@ func SetupHSMEnv(libraryPath string, libLoader pkcs11LibLoader) (
|
|||
}
|
||||
|
||||
if err := p.Initialize(); err != nil {
|
||||
defer cleanup(p, 0)
|
||||
defer finalizeAndDestroy(p)
|
||||
return nil, 0, fmt.Errorf("Initialize error %s", err.Error())
|
||||
}
|
||||
|
||||
slots, err := p.GetSlotList(true)
|
||||
if err != nil {
|
||||
defer cleanup(p, 0)
|
||||
defer finalizeAndDestroy(p)
|
||||
return nil, 0, fmt.Errorf("Failed to list HSM slots %s", err)
|
||||
}
|
||||
// Check to see if we got any slots from the HSM.
|
||||
if len(slots) < 1 {
|
||||
defer cleanup(p, 0)
|
||||
defer finalizeAndDestroy(p)
|
||||
return nil, 0, fmt.Errorf("No HSM Slots found")
|
||||
}
|
||||
|
||||
|
@ -811,7 +815,7 @@ func SetupHSMEnv(libraryPath string, libLoader pkcs11LibLoader) (
|
|||
// CKF_RW_SESSION: TRUE if the session is read/write; FALSE if the session is read-only
|
||||
session, err := p.OpenSession(slots[0], pkcs11.CKF_SERIAL_SESSION|pkcs11.CKF_RW_SESSION)
|
||||
if err != nil {
|
||||
defer cleanup(p, 0)
|
||||
defer cleanup(p, session)
|
||||
return nil, 0, fmt.Errorf("Failed to Start Session with HSM %s", err)
|
||||
}
|
||||
|
||||
|
|
|
@ -64,7 +64,7 @@ func testAddKey(t *testing.T, store trustmanager.KeyStore) (data.PrivateKey, err
|
|||
}
|
||||
|
||||
func addMaxKeys(t *testing.T, store trustmanager.KeyStore) []string {
|
||||
keys := make([]string, 0, numSlots)
|
||||
var keys []string
|
||||
// create the maximum number of keys
|
||||
for i := 0; i < numSlots; i++ {
|
||||
privKey, err := testAddKey(t, store)
|
||||
|
@ -378,6 +378,7 @@ func TestYubiExportKeyFails(t *testing.T) {
|
|||
|
||||
_, err = store.ExportKey(key.ID())
|
||||
assert.Error(t, err)
|
||||
assert.Equal(t, "Keys cannot be exported from a Yubikey.", err.Error())
|
||||
}
|
||||
|
||||
// If there are keys in the backup store but no keys in the Yubikey,
|
||||
|
|
Loading…
Reference in New Issue