if (rv == CKR_SESSION_HANDLE_INVALID && sinfo == &key->sinfo) { \
if (key->sinfo.init != 0) { \
pkcs11_close_session(&key->sinfo); \
- memset(&key->sinfo, 0, sizeof(key->sinfo)); \
+ key->sinfo.init = 0; \
+ goto restart; \
} \
}
PKCS11_CHECK_INIT_PRIVKEY(key);
+ restart:
if (key->sinfo.init != 0) {
sinfo = &key->sinfo;
obj = key->obj;
PKCS11_CHECK_INIT_PRIVKEY(key);
+ restart:
if (key->sinfo.init != 0) {
sinfo = &key->sinfo;
obj = key->obj;
PKCS11_CHECK_INIT_PRIVKEY(key);
+ restart:
if (key->sinfo.init != 0) {
sinfo = &key->sinfo;
obj = key->obj;