/*
- * Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the Apache License 2.0 (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
* https://www.openssl.org/source/license.html
*/
-/* TODO: When ERR_STATE becomes opaque, this musts be removed */
#define OSSL_FORCE_ERR_STATE
#include <stdio.h>
* unsupported.
*/
{ERR_R_FETCH_FAILED, "fetch failed"},
+
+ {ERR_R_INVALID_PROPERTY_DEFINITION, "invalid property definition"},
{0, NULL},
};
#endif
{
ERR_STRING_DATA *p = NULL;
- CRYPTO_THREAD_read_lock(err_string_lock);
+ if (!CRYPTO_THREAD_read_lock(err_string_lock))
+ return NULL;
p = lh_ERR_STRING_DATA_retrieve(int_error_hash, d);
CRYPTO_THREAD_unlock(err_string_lock);
if (s == NULL)
return;
for (i = 0; i < ERR_NUM_ERRORS; i++) {
- err_clear_data(s, i, 1);
+ err_clear(s, i, 1);
}
OPENSSL_free(s);
}
DEFINE_RUN_ONCE_STATIC(do_err_strings_init)
{
- if (!OPENSSL_init_crypto(0, NULL))
+ if (!OPENSSL_init_crypto(OPENSSL_INIT_BASE_ONLY, NULL))
return 0;
err_string_lock = CRYPTO_THREAD_lock_new();
if (err_string_lock == NULL)
*/
static int err_load_strings(const ERR_STRING_DATA *str)
{
- CRYPTO_THREAD_write_lock(err_string_lock);
+ if (!CRYPTO_THREAD_write_lock(err_string_lock))
+ return 0;
for (; str->error; str++)
(void)lh_ERR_STRING_DATA_insert(int_error_hash,
(ERR_STRING_DATA *)str);
return 1;
}
-int err_load_ERR_strings_int(void)
+int ossl_err_load_ERR_strings(void)
{
#ifndef OPENSSL_NO_ERR
if (!RUN_ONCE(&err_string_init, do_err_strings_init))
int ERR_load_strings(int lib, ERR_STRING_DATA *str)
{
- if (err_load_ERR_strings_int() == 0)
+ if (ossl_err_load_ERR_strings() == 0)
return 0;
err_patch(lib, str);
int ERR_load_strings_const(const ERR_STRING_DATA *str)
{
- if (err_load_ERR_strings_int() == 0)
+ if (ossl_err_load_ERR_strings() == 0)
return 0;
err_load_strings(str);
return 1;
if (!RUN_ONCE(&err_string_init, do_err_strings_init))
return 0;
- CRYPTO_THREAD_write_lock(err_string_lock);
+ if (!CRYPTO_THREAD_write_lock(err_string_lock))
+ return 0;
/*
* We don't need to ERR_PACK the lib, since that was done (to
* the table) when it was loaded.
int i;
ERR_STATE *es;
- es = err_get_state_int();
+ es = ossl_err_get_state_int();
if (es == NULL)
return;
ERR_STATE *es;
unsigned long ret;
- es = err_get_state_int();
+ es = ossl_err_get_state_int();
if (es == NULL)
return 0;
return CRYPTO_THREAD_init_local(&err_thread_local, NULL);
}
-ERR_STATE *err_get_state_int(void)
+ERR_STATE *ossl_err_get_state_int(void)
{
ERR_STATE *state;
int saveerrno = get_last_sys_error();
#ifndef OPENSSL_NO_DEPRECATED_3_0
ERR_STATE *ERR_get_state(void)
{
- return err_get_state_int();
+ return ossl_err_get_state_int();
}
#endif
if (!RUN_ONCE(&err_string_init, do_err_strings_init))
return 0;
- CRYPTO_THREAD_write_lock(err_string_lock);
+ if (!CRYPTO_THREAD_write_lock(err_string_lock))
+ return 0;
ret = int_err_library_number++;
CRYPTO_THREAD_unlock(err_string_lock);
return ret;
{
ERR_STATE *es;
- es = err_get_state_int();
+ es = ossl_err_get_state_int();
if (es == NULL)
return 0;
ERR_STATE *es;
/* Get the current error data; if an allocated string get it. */
- es = err_get_state_int();
+ es = ossl_err_get_state_int();
if (es == NULL)
return;
i = es->top;
{
ERR_STATE *es;
- es = err_get_state_int();
+ es = ossl_err_get_state_int();
if (es == NULL)
return 0;
{
ERR_STATE *es;
- es = err_get_state_int();
+ es = ossl_err_get_state_int();
if (es == NULL)
return 0;
ERR_STATE *es;
int top;
- es = err_get_state_int();
+ es = ossl_err_get_state_int();
if (es == NULL)
return 0;
ERR_STATE *es;
int top;
- es = err_get_state_int();
+ es = ossl_err_get_state_int();
if (es == NULL)
return;