diff options
Diffstat (limited to 'trust')
-rw-r--r-- | trust/module.c | 11 | ||||
-rw-r--r-- | trust/token.c | 6 |
2 files changed, 11 insertions, 6 deletions
diff --git a/trust/module.c b/trust/module.c index 0c16a39..1722340 100644 --- a/trust/module.c +++ b/trust/module.c @@ -1198,11 +1198,16 @@ sys_C_FindObjectsInit (CK_SESSION_HANDLE handle, indices[n++] = session->index; if (want_token_objects) { if (!session->loaded) - p11_token_load (session->token); - session->loaded = CK_TRUE; - indices[n++] = p11_token_index (session->token); + if (p11_token_load (session->token) < 0) + rv = CKR_FUNCTION_FAILED; + if (rv == CKR_OK) { + session->loaded = CK_TRUE; + indices[n++] = p11_token_index (session->token); + } } + } + if (rv == CKR_OK) { find = calloc (1, sizeof (FindObjects)); warn_if_fail (find != NULL); diff --git a/trust/token.c b/trust/token.c index fd3b043..030c17b 100644 --- a/trust/token.c +++ b/trust/token.c @@ -196,14 +196,14 @@ loader_load_file (p11_token *token, default: p11_debug ("failed to parse: %s", filename); loader_gone_file (token, filename); - return 0; + return -1; } /* Update each parsed object with the origin */ parsed = p11_parser_parsed (token->parser); for (i = 0; i < parsed->num; i++) { parsed->elem[i] = p11_attrs_build (parsed->elem[i], origin, NULL); - return_val_if_fail (parsed->elem[i] != NULL, 0); + return_val_if_fail (parsed->elem[i] != NULL, -1); } p11_index_load (token->index); @@ -215,7 +215,7 @@ loader_load_file (p11_token *token, if (rv != CKR_OK) { p11_message ("couldn't load file into objects: %s", filename); - return 0; + return -1; } loader_was_loaded (token, filename, sb); |