In engine_table_select() don't clear out entire error queue: just clear
out any we added using ERR_set_mark() and ERR_pop_to_mark() otherwise errors from other sources (e.g. SSL library) can be wiped.
This commit is contained in:
parent
00b525781b
commit
92714455af
@ -254,6 +254,7 @@ ENGINE *engine_table_select_tmp(ENGINE_TABLE **table, int nid, const char *f, in
|
|||||||
#endif
|
#endif
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
ERR_set_mark();
|
||||||
CRYPTO_w_lock(CRYPTO_LOCK_ENGINE);
|
CRYPTO_w_lock(CRYPTO_LOCK_ENGINE);
|
||||||
/* Check again inside the lock otherwise we could race against cleanup
|
/* Check again inside the lock otherwise we could race against cleanup
|
||||||
* operations. But don't worry about a fprintf(stderr). */
|
* operations. But don't worry about a fprintf(stderr). */
|
||||||
@ -327,7 +328,7 @@ end:
|
|||||||
CRYPTO_w_unlock(CRYPTO_LOCK_ENGINE);
|
CRYPTO_w_unlock(CRYPTO_LOCK_ENGINE);
|
||||||
/* Whatever happened, any failed init()s are not failures in this
|
/* Whatever happened, any failed init()s are not failures in this
|
||||||
* context, so clear our error state. */
|
* context, so clear our error state. */
|
||||||
ERR_clear_error();
|
ERR_pop_to_mark();
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user