Make sure OSSL_STORE_load() isn't caught in an endless loop

The post process callback might potentially say "no" to everything (by
constantly returning NULL) and thereby cause an endless loop.  Ensure
that we stop all processing when "eof" is reached.

Reviewed-by: Paul Dale <paul.dale@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/3823)
This commit is contained in:
Richard Levitte 2017-07-01 18:25:43 +02:00
parent 50c9ac07bb
commit 6e2f49b384
1 changed files with 3 additions and 0 deletions

View File

@ -90,6 +90,9 @@ OSSL_STORE_INFO *OSSL_STORE_load(OSSL_STORE_CTX *ctx)
OSSL_STORE_INFO *v = NULL;
again:
if (OSSL_STORE_eof(ctx))
return NULL;
v = ctx->loader->load(ctx->loader_ctx, ctx->ui_method, ctx->ui_data);
if (ctx->post_process != NULL && v != NULL) {