/src/openssl33/crypto/err/err_local.h
Line | Count | Source |
1 | | /* |
2 | | * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved. |
3 | | * |
4 | | * Licensed under the Apache License 2.0 (the "License"). You may not use |
5 | | * this file except in compliance with the License. You can obtain a copy |
6 | | * in the file LICENSE in the source distribution or at |
7 | | * https://www.openssl.org/source/license.html |
8 | | */ |
9 | | |
10 | | #include <string.h> |
11 | | #include <openssl/err.h> |
12 | | #include <openssl/e_os2.h> |
13 | | |
14 | | static ossl_inline void err_get_slot(ERR_STATE *es) |
15 | 316M | { |
16 | 316M | es->top = (es->top + 1) % ERR_NUM_ERRORS; |
17 | 316M | if (es->top == es->bottom) |
18 | 34.5M | es->bottom = (es->bottom + 1) % ERR_NUM_ERRORS; |
19 | 316M | } Unexecuted instantiation: err.c:err_get_slot err_blocks.c:err_get_slot Line | Count | Source | 15 | 315M | { | 16 | 315M | es->top = (es->top + 1) % ERR_NUM_ERRORS; | 17 | 315M | if (es->top == es->bottom) | 18 | 34.4M | es->bottom = (es->bottom + 1) % ERR_NUM_ERRORS; | 19 | 315M | } |
Unexecuted instantiation: err_mark.c:err_get_slot Line | Count | Source | 15 | 59.4k | { | 16 | 59.4k | es->top = (es->top + 1) % ERR_NUM_ERRORS; | 17 | 59.4k | if (es->top == es->bottom) | 18 | 6.25k | es->bottom = (es->bottom + 1) % ERR_NUM_ERRORS; | 19 | 59.4k | } |
Unexecuted instantiation: err_prn.c:err_get_slot |
20 | | |
21 | | static ossl_inline void err_clear_data(ERR_STATE *es, size_t i, int deall) |
22 | 1.94G | { |
23 | 1.94G | if (es->err_data_flags[i] & ERR_TXT_MALLOCED) { |
24 | 1.00G | if (deall) { |
25 | 71.6k | OPENSSL_free(es->err_data[i]); |
26 | 71.6k | es->err_data[i] = NULL; |
27 | 71.6k | es->err_data_size[i] = 0; |
28 | 71.6k | es->err_data_flags[i] = 0; |
29 | 1.00G | } else if (es->err_data[i] != NULL) { |
30 | 1.00G | es->err_data[i][0] = '\0'; |
31 | 1.00G | es->err_data_flags[i] = ERR_TXT_MALLOCED; |
32 | 1.00G | } |
33 | 1.00G | } else { |
34 | 943M | es->err_data[i] = NULL; |
35 | 943M | es->err_data_size[i] = 0; |
36 | 943M | es->err_data_flags[i] = 0; |
37 | 943M | } |
38 | 1.94G | } Line | Count | Source | 22 | 1.06G | { | 23 | 1.06G | if (es->err_data_flags[i] & ERR_TXT_MALLOCED) { | 24 | 126M | if (deall) { | 25 | 71.6k | OPENSSL_free(es->err_data[i]); | 26 | 71.6k | es->err_data[i] = NULL; | 27 | 71.6k | es->err_data_size[i] = 0; | 28 | 71.6k | es->err_data_flags[i] = 0; | 29 | 126M | } else if (es->err_data[i] != NULL) { | 30 | 126M | es->err_data[i][0] = '\0'; | 31 | 126M | es->err_data_flags[i] = ERR_TXT_MALLOCED; | 32 | 126M | } | 33 | 937M | } else { | 34 | | es->err_data[i] = NULL; | 35 | 937M | es->err_data_size[i] = 0; | 36 | 937M | es->err_data_flags[i] = 0; | 37 | 937M | } | 38 | 1.06G | } |
err_blocks.c:err_clear_data Line | Count | Source | 22 | 631M | { | 23 | 631M | if (es->err_data_flags[i] & ERR_TXT_MALLOCED) { | 24 | 626M | if (deall) { | 25 | 0 | OPENSSL_free(es->err_data[i]); | 26 | 0 | es->err_data[i] = NULL; | 27 | 0 | es->err_data_size[i] = 0; | 28 | 0 | es->err_data_flags[i] = 0; | 29 | 626M | } else if (es->err_data[i] != NULL) { | 30 | 626M | es->err_data[i][0] = '\0'; | 31 | 626M | es->err_data_flags[i] = ERR_TXT_MALLOCED; | 32 | 626M | } | 33 | 626M | } else { | 34 | | es->err_data[i] = NULL; | 35 | 5.26M | es->err_data_size[i] = 0; | 36 | 5.26M | es->err_data_flags[i] = 0; | 37 | 5.26M | } | 38 | 631M | } |
err_mark.c:err_clear_data Line | Count | Source | 22 | 253M | { | 23 | 253M | if (es->err_data_flags[i] & ERR_TXT_MALLOCED) { | 24 | 252M | if (deall) { | 25 | 0 | OPENSSL_free(es->err_data[i]); | 26 | 0 | es->err_data[i] = NULL; | 27 | 0 | es->err_data_size[i] = 0; | 28 | 0 | es->err_data_flags[i] = 0; | 29 | 252M | } else if (es->err_data[i] != NULL) { | 30 | 252M | es->err_data[i][0] = '\0'; | 31 | 252M | es->err_data_flags[i] = ERR_TXT_MALLOCED; | 32 | 252M | } | 33 | 252M | } else { | 34 | | es->err_data[i] = NULL; | 35 | 554k | es->err_data_size[i] = 0; | 36 | 554k | es->err_data_flags[i] = 0; | 37 | 554k | } | 38 | 253M | } |
err_save.c:err_clear_data Line | Count | Source | 22 | 654k | { | 23 | 654k | if (es->err_data_flags[i] & ERR_TXT_MALLOCED) { | 24 | 6.19k | if (deall) { | 25 | 0 | OPENSSL_free(es->err_data[i]); | 26 | 0 | es->err_data[i] = NULL; | 27 | 0 | es->err_data_size[i] = 0; | 28 | 0 | es->err_data_flags[i] = 0; | 29 | 6.19k | } else if (es->err_data[i] != NULL) { | 30 | 6.19k | es->err_data[i][0] = '\0'; | 31 | 6.19k | es->err_data_flags[i] = ERR_TXT_MALLOCED; | 32 | 6.19k | } | 33 | 648k | } else { | 34 | | es->err_data[i] = NULL; | 35 | 648k | es->err_data_size[i] = 0; | 36 | 648k | es->err_data_flags[i] = 0; | 37 | 648k | } | 38 | 654k | } |
Unexecuted instantiation: err_prn.c:err_clear_data |
39 | | |
40 | | static ossl_inline void err_set_error(ERR_STATE *es, size_t i, |
41 | | int lib, int reason) |
42 | 315M | { |
43 | 315M | es->err_buffer[i] = lib == ERR_LIB_SYS |
44 | 315M | ? (unsigned int)(ERR_SYSTEM_FLAG | reason) |
45 | 315M | : ERR_PACK(lib, 0, reason); |
46 | 315M | } Unexecuted instantiation: err.c:err_set_error err_blocks.c:err_set_error Line | Count | Source | 42 | 315M | { | 43 | 315M | es->err_buffer[i] = lib == ERR_LIB_SYS | 44 | 315M | ? (unsigned int)(ERR_SYSTEM_FLAG | reason) | 45 | 315M | : ERR_PACK(lib, 0, reason); | 46 | 315M | } |
Unexecuted instantiation: err_mark.c:err_set_error Unexecuted instantiation: err_save.c:err_set_error Unexecuted instantiation: err_prn.c:err_set_error |
47 | | |
48 | | static ossl_inline void err_set_debug(ERR_STATE *es, size_t i, |
49 | | const char *file, int line, |
50 | | const char *fn) |
51 | 284M | { |
52 | | /* |
53 | | * We dup the file and fn strings because they may be provider owned. If the |
54 | | * provider gets unloaded, they may not be valid anymore. |
55 | | */ |
56 | 284M | OPENSSL_free(es->err_file[i]); |
57 | 284M | if (file == NULL || file[0] == '\0') |
58 | 0 | es->err_file[i] = NULL; |
59 | 284M | else if ((es->err_file[i] = CRYPTO_malloc(strlen(file) + 1, |
60 | 284M | NULL, 0)) |
61 | 284M | != NULL) |
62 | | /* We cannot use OPENSSL_strdup due to possible recursion */ |
63 | 284M | strcpy(es->err_file[i], file); |
64 | | |
65 | 284M | es->err_line[i] = line; |
66 | 284M | OPENSSL_free(es->err_func[i]); |
67 | 284M | if (fn == NULL || fn[0] == '\0') |
68 | 7.73k | es->err_func[i] = NULL; |
69 | 284M | else if ((es->err_func[i] = CRYPTO_malloc(strlen(fn) + 1, |
70 | 284M | NULL, 0)) |
71 | 284M | != NULL) |
72 | 284M | strcpy(es->err_func[i], fn); |
73 | 284M | } Unexecuted instantiation: err.c:err_set_debug err_blocks.c:err_set_debug Line | Count | Source | 51 | 284M | { | 52 | | /* | 53 | | * We dup the file and fn strings because they may be provider owned. If the | 54 | | * provider gets unloaded, they may not be valid anymore. | 55 | | */ | 56 | 284M | OPENSSL_free(es->err_file[i]); | 57 | 284M | if (file == NULL || file[0] == '\0') | 58 | 0 | es->err_file[i] = NULL; | 59 | 284M | else if ((es->err_file[i] = CRYPTO_malloc(strlen(file) + 1, | 60 | 284M | NULL, 0)) | 61 | 284M | != NULL) | 62 | | /* We cannot use OPENSSL_strdup due to possible recursion */ | 63 | 284M | strcpy(es->err_file[i], file); | 64 | | | 65 | 284M | es->err_line[i] = line; | 66 | 284M | OPENSSL_free(es->err_func[i]); | 67 | 284M | if (fn == NULL || fn[0] == '\0') | 68 | 7.73k | es->err_func[i] = NULL; | 69 | 284M | else if ((es->err_func[i] = CRYPTO_malloc(strlen(fn) + 1, | 70 | 284M | NULL, 0)) | 71 | 284M | != NULL) | 72 | 284M | strcpy(es->err_func[i], fn); | 73 | 284M | } |
Unexecuted instantiation: err_mark.c:err_set_debug Line | Count | Source | 51 | 59.4k | { | 52 | | /* | 53 | | * We dup the file and fn strings because they may be provider owned. If the | 54 | | * provider gets unloaded, they may not be valid anymore. | 55 | | */ | 56 | 59.4k | OPENSSL_free(es->err_file[i]); | 57 | 59.4k | if (file == NULL || file[0] == '\0') | 58 | 0 | es->err_file[i] = NULL; | 59 | 59.4k | else if ((es->err_file[i] = CRYPTO_malloc(strlen(file) + 1, | 60 | 59.4k | NULL, 0)) | 61 | 59.4k | != NULL) | 62 | | /* We cannot use OPENSSL_strdup due to possible recursion */ | 63 | 59.4k | strcpy(es->err_file[i], file); | 64 | | | 65 | 59.4k | es->err_line[i] = line; | 66 | 59.4k | OPENSSL_free(es->err_func[i]); | 67 | 59.4k | if (fn == NULL || fn[0] == '\0') | 68 | 0 | es->err_func[i] = NULL; | 69 | 59.4k | else if ((es->err_func[i] = CRYPTO_malloc(strlen(fn) + 1, | 70 | 59.4k | NULL, 0)) | 71 | 59.4k | != NULL) | 72 | 59.4k | strcpy(es->err_func[i], fn); | 73 | 59.4k | } |
Unexecuted instantiation: err_prn.c:err_set_debug |
74 | | |
75 | | static ossl_inline void err_set_data(ERR_STATE *es, size_t i, |
76 | | void *data, size_t datasz, int flags) |
77 | 21.0M | { |
78 | 21.0M | if ((es->err_data_flags[i] & ERR_TXT_MALLOCED) != 0) |
79 | 17.4M | OPENSSL_free(es->err_data[i]); |
80 | 21.0M | es->err_data[i] = data; |
81 | 21.0M | es->err_data_size[i] = datasz; |
82 | 21.0M | es->err_data_flags[i] = flags; |
83 | 21.0M | } Line | Count | Source | 77 | 17.4M | { | 78 | 17.4M | if ((es->err_data_flags[i] & ERR_TXT_MALLOCED) != 0) | 79 | 17.4M | OPENSSL_free(es->err_data[i]); | 80 | 17.4M | es->err_data[i] = data; | 81 | 17.4M | es->err_data_size[i] = datasz; | 82 | 17.4M | es->err_data_flags[i] = flags; | 83 | 17.4M | } |
err_blocks.c:err_set_data Line | Count | Source | 77 | 3.61M | { | 78 | 3.61M | if ((es->err_data_flags[i] & ERR_TXT_MALLOCED) != 0) | 79 | 0 | OPENSSL_free(es->err_data[i]); | 80 | 3.61M | es->err_data[i] = data; | 81 | 3.61M | es->err_data_size[i] = datasz; | 82 | 3.61M | es->err_data_flags[i] = flags; | 83 | 3.61M | } |
Unexecuted instantiation: err_mark.c:err_set_data Line | Count | Source | 77 | 49.8k | { | 78 | 49.8k | if ((es->err_data_flags[i] & ERR_TXT_MALLOCED) != 0) | 79 | 2.98k | OPENSSL_free(es->err_data[i]); | 80 | 49.8k | es->err_data[i] = data; | 81 | 49.8k | es->err_data_size[i] = datasz; | 82 | 49.8k | es->err_data_flags[i] = flags; | 83 | 49.8k | } |
Unexecuted instantiation: err_prn.c:err_set_data |
84 | | |
85 | | static ossl_inline void err_clear(ERR_STATE *es, size_t i, int deall) |
86 | 1.61G | { |
87 | 1.61G | err_clear_data(es, i, (deall)); |
88 | 1.61G | es->err_marks[i] = 0; |
89 | 1.61G | es->err_flags[i] = 0; |
90 | 1.61G | es->err_buffer[i] = 0; |
91 | 1.61G | es->err_line[i] = -1; |
92 | 1.61G | OPENSSL_free(es->err_file[i]); |
93 | 1.61G | es->err_file[i] = NULL; |
94 | 1.61G | OPENSSL_free(es->err_func[i]); |
95 | | es->err_func[i] = NULL; |
96 | 1.61G | } Line | Count | Source | 86 | 1.04G | { | 87 | 1.04G | err_clear_data(es, i, (deall)); | 88 | 1.04G | es->err_marks[i] = 0; | 89 | 1.04G | es->err_flags[i] = 0; | 90 | 1.04G | es->err_buffer[i] = 0; | 91 | 1.04G | es->err_line[i] = -1; | 92 | 1.04G | OPENSSL_free(es->err_file[i]); | 93 | 1.04G | es->err_file[i] = NULL; | 94 | 1.04G | OPENSSL_free(es->err_func[i]); | 95 | | es->err_func[i] = NULL; | 96 | 1.04G | } |
Line | Count | Source | 86 | 315M | { | 87 | 315M | err_clear_data(es, i, (deall)); | 88 | 315M | es->err_marks[i] = 0; | 89 | 315M | es->err_flags[i] = 0; | 90 | 315M | es->err_buffer[i] = 0; | 91 | 315M | es->err_line[i] = -1; | 92 | 315M | OPENSSL_free(es->err_file[i]); | 93 | 315M | es->err_file[i] = NULL; | 94 | 315M | OPENSSL_free(es->err_func[i]); | 95 | | es->err_func[i] = NULL; | 96 | 315M | } |
Line | Count | Source | 86 | 253M | { | 87 | 253M | err_clear_data(es, i, (deall)); | 88 | 253M | es->err_marks[i] = 0; | 89 | 253M | es->err_flags[i] = 0; | 90 | 253M | es->err_buffer[i] = 0; | 91 | 253M | es->err_line[i] = -1; | 92 | 253M | OPENSSL_free(es->err_file[i]); | 93 | 253M | es->err_file[i] = NULL; | 94 | 253M | OPENSSL_free(es->err_func[i]); | 95 | | es->err_func[i] = NULL; | 96 | 253M | } |
Line | Count | Source | 86 | 645k | { | 87 | 645k | err_clear_data(es, i, (deall)); | 88 | 645k | es->err_marks[i] = 0; | 89 | 645k | es->err_flags[i] = 0; | 90 | 645k | es->err_buffer[i] = 0; | 91 | 645k | es->err_line[i] = -1; | 92 | 645k | OPENSSL_free(es->err_file[i]); | 93 | 645k | es->err_file[i] = NULL; | 94 | 645k | OPENSSL_free(es->err_func[i]); | 95 | | es->err_func[i] = NULL; | 96 | 645k | } |
Unexecuted instantiation: err_prn.c:err_clear |
97 | | |
98 | | ERR_STATE *ossl_err_get_state_int(void); |
99 | | void ossl_err_string_int(unsigned long e, const char *func, |
100 | | char *buf, size_t len); |