| Absolute File Name: | /home/opencoverage/opencoverage/guest-scripts/libressl/src/crypto/cryptlib.c |
| Switch to Source code | Preprocessed file |
| Line | Source | Count | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | - | |||||||||||||||||||||||||
| 2 | - | |||||||||||||||||||||||||
| 3 | - | |||||||||||||||||||||||||
| 4 | - | |||||||||||||||||||||||||
| 5 | struct stack_st_CRYPTO_dynlock { _STACK stack; }; | - | ||||||||||||||||||||||||
| 6 | - | |||||||||||||||||||||||||
| 7 | - | |||||||||||||||||||||||||
| 8 | static const char* const lock_names[41] = { | - | ||||||||||||||||||||||||
| 9 | "<<ERROR>>", | - | ||||||||||||||||||||||||
| 10 | "err", | - | ||||||||||||||||||||||||
| 11 | "ex_data", | - | ||||||||||||||||||||||||
| 12 | "x509", | - | ||||||||||||||||||||||||
| 13 | "x509_info", | - | ||||||||||||||||||||||||
| 14 | "x509_pkey", | - | ||||||||||||||||||||||||
| 15 | "x509_crl", | - | ||||||||||||||||||||||||
| 16 | "x509_req", | - | ||||||||||||||||||||||||
| 17 | "dsa", | - | ||||||||||||||||||||||||
| 18 | "rsa", | - | ||||||||||||||||||||||||
| 19 | "evp_pkey", | - | ||||||||||||||||||||||||
| 20 | "x509_store", | - | ||||||||||||||||||||||||
| 21 | "ssl_ctx", | - | ||||||||||||||||||||||||
| 22 | "ssl_cert", | - | ||||||||||||||||||||||||
| 23 | "ssl_session", | - | ||||||||||||||||||||||||
| 24 | "ssl_sess_cert", | - | ||||||||||||||||||||||||
| 25 | "ssl", | - | ||||||||||||||||||||||||
| 26 | "ssl_method", | - | ||||||||||||||||||||||||
| 27 | "rand", | - | ||||||||||||||||||||||||
| 28 | "rand2", | - | ||||||||||||||||||||||||
| 29 | "debug_malloc", | - | ||||||||||||||||||||||||
| 30 | "BIO", | - | ||||||||||||||||||||||||
| 31 | "gethostbyname", | - | ||||||||||||||||||||||||
| 32 | "getservbyname", | - | ||||||||||||||||||||||||
| 33 | "readdir", | - | ||||||||||||||||||||||||
| 34 | "RSA_blinding", | - | ||||||||||||||||||||||||
| 35 | "dh", | - | ||||||||||||||||||||||||
| 36 | "debug_malloc2", | - | ||||||||||||||||||||||||
| 37 | "dso", | - | ||||||||||||||||||||||||
| 38 | "dynlock", | - | ||||||||||||||||||||||||
| 39 | "engine", | - | ||||||||||||||||||||||||
| 40 | "ui", | - | ||||||||||||||||||||||||
| 41 | "ecdsa", | - | ||||||||||||||||||||||||
| 42 | "ec", | - | ||||||||||||||||||||||||
| 43 | "ecdh", | - | ||||||||||||||||||||||||
| 44 | "bn", | - | ||||||||||||||||||||||||
| 45 | "ec_pre_comp", | - | ||||||||||||||||||||||||
| 46 | "store", | - | ||||||||||||||||||||||||
| 47 | "comp", | - | ||||||||||||||||||||||||
| 48 | "fips", | - | ||||||||||||||||||||||||
| 49 | "fips2", | - | ||||||||||||||||||||||||
| 50 | - | |||||||||||||||||||||||||
| 51 | - | |||||||||||||||||||||||||
| 52 | - | |||||||||||||||||||||||||
| 53 | }; | - | ||||||||||||||||||||||||
| 54 | - | |||||||||||||||||||||||||
| 55 | - | |||||||||||||||||||||||||
| 56 | - | |||||||||||||||||||||||||
| 57 | static struct stack_st_OPENSSL_STRING *app_locks = | - | ||||||||||||||||||||||||
| 58 | ((void *)0) | - | ||||||||||||||||||||||||
| 59 | ; | - | ||||||||||||||||||||||||
| 60 | - | |||||||||||||||||||||||||
| 61 | - | |||||||||||||||||||||||||
| 62 | - | |||||||||||||||||||||||||
| 63 | - | |||||||||||||||||||||||||
| 64 | static struct stack_st_CRYPTO_dynlock *dyn_locks = | - | ||||||||||||||||||||||||
| 65 | ((void *)0) | - | ||||||||||||||||||||||||
| 66 | ; | - | ||||||||||||||||||||||||
| 67 | - | |||||||||||||||||||||||||
| 68 | static void (*locking_callback)(int mode, int type, | - | ||||||||||||||||||||||||
| 69 | const char *file, int line) = 0; | - | ||||||||||||||||||||||||
| 70 | static int (*add_lock_callback)(int *pointer, int amount, | - | ||||||||||||||||||||||||
| 71 | int type, const char *file, int line) = 0; | - | ||||||||||||||||||||||||
| 72 | - | |||||||||||||||||||||||||
| 73 | static unsigned long (*id_callback)(void) = 0; | - | ||||||||||||||||||||||||
| 74 | - | |||||||||||||||||||||||||
| 75 | static void (*threadid_callback)(CRYPTO_THREADID *) = 0; | - | ||||||||||||||||||||||||
| 76 | static struct CRYPTO_dynlock_value *(*dynlock_create_callback)( | - | ||||||||||||||||||||||||
| 77 | const char *file, int line) = 0; | - | ||||||||||||||||||||||||
| 78 | static void (*dynlock_lock_callback)(int mode, | - | ||||||||||||||||||||||||
| 79 | struct CRYPTO_dynlock_value *l, const char *file, int line) = 0; | - | ||||||||||||||||||||||||
| 80 | static void (*dynlock_destroy_callback)(struct CRYPTO_dynlock_value *l, | - | ||||||||||||||||||||||||
| 81 | const char *file, int line) = 0; | - | ||||||||||||||||||||||||
| 82 | - | |||||||||||||||||||||||||
| 83 | int | - | ||||||||||||||||||||||||
| 84 | CRYPTO_get_new_lockid(char *name) | - | ||||||||||||||||||||||||
| 85 | { | - | ||||||||||||||||||||||||
| 86 | char *str; | - | ||||||||||||||||||||||||
| 87 | int i; | - | ||||||||||||||||||||||||
| 88 | - | |||||||||||||||||||||||||
| 89 | if ((
| 0 | ||||||||||||||||||||||||
| 90 | ((void *)0)
| 0 | ||||||||||||||||||||||||
| 91 | )
| 0 | ||||||||||||||||||||||||
| 92 | ((
| 0 | ||||||||||||||||||||||||
| 93 | ((void *)0)
| 0 | ||||||||||||||||||||||||
| 94 | )
| 0 | ||||||||||||||||||||||||
| 95 | ERR_put_error(15,(0xfff),((1|64)),__FILE__,213); | - | ||||||||||||||||||||||||
| 96 | return never executed: (0);return (0);never executed: return (0); | 0 | ||||||||||||||||||||||||
| 97 | } | - | ||||||||||||||||||||||||
| 98 | if (name ==
| 0 | ||||||||||||||||||||||||
| 99 | ((void *)0)
| 0 | ||||||||||||||||||||||||
| 100 | || (
| 0 | ||||||||||||||||||||||||
| 101 | (__extension__ (__builtin_constant_p (
| 0 | ||||||||||||||||||||||||
| 102 | name
| 0 | ||||||||||||||||||||||||
| 103 | )
| 0 | ||||||||||||||||||||||||
| 104 | name
| 0 | ||||||||||||||||||||||||
| 105 | ) + 1) - (size_t)(const void *)(
| 0 | ||||||||||||||||||||||||
| 106 | name
| 0 | ||||||||||||||||||||||||
| 107 | ) == 1)
| 0 | ||||||||||||||||||||||||
| 108 | name
| 0 | ||||||||||||||||||||||||
| 109 | ))[0] == '\0' ? (char *) calloc ((size_t) 1, (size_t) 1) : ({ size_t __len = strlen (
| 0 | ||||||||||||||||||||||||
| 110 | name
| 0 | ||||||||||||||||||||||||
| 111 | ) + 1; char *__retval = (char *) malloc (__len); if (__retval != ((void *)0)) __retval = (char *) memcpy (__retval, never executed: __retval = (char *) memcpy (__retval, name , __len); | 0 | ||||||||||||||||||||||||
| 112 | name
never executed: __retval = (char *) memcpy (__retval, name , __len); | 0 | ||||||||||||||||||||||||
| 113 | , __len); __retval; })) : __strdup (
| 0 | ||||||||||||||||||||||||
| 114 | name
| 0 | ||||||||||||||||||||||||
| 115 | )))
| 0 | ||||||||||||||||||||||||
| 116 | ) ==
| 0 | ||||||||||||||||||||||||
| 117 | ((void *)0)
| 0 | ||||||||||||||||||||||||
| 118 | ) { | - | ||||||||||||||||||||||||
| 119 | ERR_put_error(15,(0xfff),((1|64)),__FILE__,217); | - | ||||||||||||||||||||||||
| 120 | return never executed: (0);return (0);never executed: return (0); | 0 | ||||||||||||||||||||||||
| 121 | } | - | ||||||||||||||||||||||||
| 122 | i = sk_push(((_STACK*) (1 ? app_locks : (struct stack_st_OPENSSL_STRING*)0)), ((void*) (1 ? str : (char*)0))); | - | ||||||||||||||||||||||||
| 123 | if (!i
| 0 | ||||||||||||||||||||||||
| 124 | free(str); never executed: free(str); | 0 | ||||||||||||||||||||||||
| 125 | else | - | ||||||||||||||||||||||||
| 126 | i += 41; never executed: i += 41; | 0 | ||||||||||||||||||||||||
| 127 | return never executed: (i);return (i);never executed: return (i); | 0 | ||||||||||||||||||||||||
| 128 | } | - | ||||||||||||||||||||||||
| 129 | - | |||||||||||||||||||||||||
| 130 | int | - | ||||||||||||||||||||||||
| 131 | CRYPTO_num_locks(void) | - | ||||||||||||||||||||||||
| 132 | { | - | ||||||||||||||||||||||||
| 133 | return never executed: 41;return 41;never executed: return 41; | 0 | ||||||||||||||||||||||||
| 134 | } | - | ||||||||||||||||||||||||
| 135 | - | |||||||||||||||||||||||||
| 136 | int | - | ||||||||||||||||||||||||
| 137 | CRYPTO_get_new_dynlockid(void) | - | ||||||||||||||||||||||||
| 138 | { | - | ||||||||||||||||||||||||
| 139 | int i = 0; | - | ||||||||||||||||||||||||
| 140 | CRYPTO_dynlock *pointer = | - | ||||||||||||||||||||||||
| 141 | ((void *)0) | - | ||||||||||||||||||||||||
| 142 | ; | - | ||||||||||||||||||||||||
| 143 | - | |||||||||||||||||||||||||
| 144 | if (dynlock_create_callback ==
| 0 | ||||||||||||||||||||||||
| 145 | ((void *)0)
| 0 | ||||||||||||||||||||||||
| 146 | ) { | - | ||||||||||||||||||||||||
| 147 | ERR_put_error(15,(0xfff),(100),__FILE__,241); | - | ||||||||||||||||||||||||
| 148 | return never executed: (0);return (0);never executed: return (0); | 0 | ||||||||||||||||||||||||
| 149 | } | - | ||||||||||||||||||||||||
| 150 | CRYPTO_lock(1|8,29,__FILE__,244); | - | ||||||||||||||||||||||||
| 151 | if ((
| 0 | ||||||||||||||||||||||||
| 152 | ((void *)0)
| 0 | ||||||||||||||||||||||||
| 153 | )
| 0 | ||||||||||||||||||||||||
| 154 | ((
| 0 | ||||||||||||||||||||||||
| 155 | ((void *)0)
| 0 | ||||||||||||||||||||||||
| 156 | )
| 0 | ||||||||||||||||||||||||
| 157 | CRYPTO_lock(2|8,29,__FILE__,247); | - | ||||||||||||||||||||||||
| 158 | ERR_put_error(15,(0xfff),((1|64)),__FILE__,248); | - | ||||||||||||||||||||||||
| 159 | return never executed: (0);return (0);never executed: return (0); | 0 | ||||||||||||||||||||||||
| 160 | } | - | ||||||||||||||||||||||||
| 161 | CRYPTO_lock(2|8,29,__FILE__,251); | - | ||||||||||||||||||||||||
| 162 | - | |||||||||||||||||||||||||
| 163 | pointer = malloc(sizeof(CRYPTO_dynlock)); | - | ||||||||||||||||||||||||
| 164 | if (pointer ==
| 0 | ||||||||||||||||||||||||
| 165 | ((void *)0)
| 0 | ||||||||||||||||||||||||
| 166 | ) { | - | ||||||||||||||||||||||||
| 167 | ERR_put_error(15,(0xfff),((1|64)),__FILE__,255); | - | ||||||||||||||||||||||||
| 168 | return never executed: (0);return (0);never executed: return (0); | 0 | ||||||||||||||||||||||||
| 169 | } | - | ||||||||||||||||||||||||
| 170 | pointer->references = 1; | - | ||||||||||||||||||||||||
| 171 | pointer->data = dynlock_create_callback(__FILE__, 259); | - | ||||||||||||||||||||||||
| 172 | if (pointer->data ==
| 0 | ||||||||||||||||||||||||
| 173 | ((void *)0)
| 0 | ||||||||||||||||||||||||
| 174 | ) { | - | ||||||||||||||||||||||||
| 175 | free(pointer); | - | ||||||||||||||||||||||||
| 176 | ERR_put_error(15,(0xfff),((1|64)),__FILE__,262); | - | ||||||||||||||||||||||||
| 177 | return never executed: (0);return (0);never executed: return (0); | 0 | ||||||||||||||||||||||||
| 178 | } | - | ||||||||||||||||||||||||
| 179 | - | |||||||||||||||||||||||||
| 180 | CRYPTO_lock(1|8,29,__FILE__,266); | - | ||||||||||||||||||||||||
| 181 | - | |||||||||||||||||||||||||
| 182 | i = sk_find(((_STACK*) (1 ? (dyn_locks) : (struct stack_st_CRYPTO_dynlock*)0)), ((void*) (1 ? ( | - | ||||||||||||||||||||||||
| 183 | ((void *)0) | - | ||||||||||||||||||||||||
| 184 | ) : (CRYPTO_dynlock*)0))); | - | ||||||||||||||||||||||||
| 185 | - | |||||||||||||||||||||||||
| 186 | if (i == -1
| 0 | ||||||||||||||||||||||||
| 187 | - | |||||||||||||||||||||||||
| 188 | - | |||||||||||||||||||||||||
| 189 | - | |||||||||||||||||||||||||
| 190 | - | |||||||||||||||||||||||||
| 191 | i = sk_push(((_STACK*) (1 ? (dyn_locks) : (struct stack_st_CRYPTO_dynlock*)0)), ((void*) (1 ? (pointer) : (CRYPTO_dynlock*)0))) - 1; never executed: i = sk_push(((_STACK*) (1 ? (dyn_locks) : (struct stack_st_CRYPTO_dynlock*)0)), ((void*) (1 ? (pointer) : (CRYPTO_dynlock*)0))) - 1; | 0 | ||||||||||||||||||||||||
| 192 | else | - | ||||||||||||||||||||||||
| 193 | - | |||||||||||||||||||||||||
| 194 | - | |||||||||||||||||||||||||
| 195 | ( never executed: void)sk_set(((_STACK*) (1 ? (dyn_locks) : (struct stack_st_CRYPTO_dynlock*)0)), (i), ((void*) (1 ? (pointer) : (CRYPTO_dynlock*)0)));(void)sk_set(((_STACK*) (1 ? (dyn_locks) : (struct stack_st_CRYPTO_dynlock*)0)), (i), ((void*) (1 ? (pointer) : (CRYPTO_dynlock*)0)));never executed: (void)sk_set(((_STACK*) (1 ? (dyn_locks) : (struct stack_st_CRYPTO_dynlock*)0)), (i), ((void*) (1 ? (pointer) : (CRYPTO_dynlock*)0))); | 0 | ||||||||||||||||||||||||
| 196 | CRYPTO_lock(2|8,29,__FILE__,280); | - | ||||||||||||||||||||||||
| 197 | - | |||||||||||||||||||||||||
| 198 | if (i == -1
| 0 | ||||||||||||||||||||||||
| 199 | dynlock_destroy_callback(pointer->data, __FILE__, 283); | - | ||||||||||||||||||||||||
| 200 | free(pointer); | - | ||||||||||||||||||||||||
| 201 | } never executed: elseend of block | 0 | ||||||||||||||||||||||||
| 202 | i += 1; never executed: i += 1; | 0 | ||||||||||||||||||||||||
| 203 | return never executed: -i;return -i;never executed: return -i; | 0 | ||||||||||||||||||||||||
| 204 | } | - | ||||||||||||||||||||||||
| 205 | - | |||||||||||||||||||||||||
| 206 | void | - | ||||||||||||||||||||||||
| 207 | CRYPTO_destroy_dynlockid(int i) | - | ||||||||||||||||||||||||
| 208 | { | - | ||||||||||||||||||||||||
| 209 | CRYPTO_dynlock *pointer = | - | ||||||||||||||||||||||||
| 210 | ((void *)0) | - | ||||||||||||||||||||||||
| 211 | ; | - | ||||||||||||||||||||||||
| 212 | - | |||||||||||||||||||||||||
| 213 | if (i
| 0 | ||||||||||||||||||||||||
| 214 | i = -i - 1; never executed: i = -i - 1; | 0 | ||||||||||||||||||||||||
| 215 | if (dynlock_destroy_callback ==
| 0 | ||||||||||||||||||||||||
| 216 | ((void *)0)
| 0 | ||||||||||||||||||||||||
| 217 | ) | - | ||||||||||||||||||||||||
| 218 | return; never executed: return; | 0 | ||||||||||||||||||||||||
| 219 | - | |||||||||||||||||||||||||
| 220 | CRYPTO_lock(1|8,29,__FILE__,300); | - | ||||||||||||||||||||||||
| 221 | - | |||||||||||||||||||||||||
| 222 | if (dyn_locks ==
| 0 | ||||||||||||||||||||||||
| 223 | ((void *)0)
| 0 | ||||||||||||||||||||||||
| 224 | || i >= sk_num(((_STACK*) (1 ? (dyn_locks) : (struct stack_st_CRYPTO_dynlock*)0)))
| 0 | ||||||||||||||||||||||||
| 225 | CRYPTO_lock(2|8,29,__FILE__,303); | - | ||||||||||||||||||||||||
| 226 | return; never executed: return; | 0 | ||||||||||||||||||||||||
| 227 | } | - | ||||||||||||||||||||||||
| 228 | pointer = ((CRYPTO_dynlock *)sk_value(((_STACK*) (1 ? (dyn_locks) : (struct stack_st_CRYPTO_dynlock*)0)), (i))); | - | ||||||||||||||||||||||||
| 229 | if (pointer !=
| 0 | ||||||||||||||||||||||||
| 230 | ((void *)0)
| 0 | ||||||||||||||||||||||||
| 231 | ) { | - | ||||||||||||||||||||||||
| 232 | --pointer->references; | - | ||||||||||||||||||||||||
| 233 | if (pointer->references <= 0
| 0 | ||||||||||||||||||||||||
| 234 | (void)sk_set(((_STACK*) (1 ? (dyn_locks) : (struct stack_st_CRYPTO_dynlock*)0)), (i), ((void*) (1 ? ( | - | ||||||||||||||||||||||||
| 235 | ((void *)0) | - | ||||||||||||||||||||||||
| 236 | ) : (CRYPTO_dynlock*)0))); | - | ||||||||||||||||||||||||
| 237 | } never executed: elseend of block | 0 | ||||||||||||||||||||||||
| 238 | pointer = never executed: pointer = ((void *)0) ; | 0 | ||||||||||||||||||||||||
| 239 | ((void *)0) never executed: pointer = ((void *)0) ; | 0 | ||||||||||||||||||||||||
| 240 | ; never executed: pointer = ((void *)0) ; | 0 | ||||||||||||||||||||||||
| 241 | } | - | ||||||||||||||||||||||||
| 242 | CRYPTO_lock(2|8,29,__FILE__,314); | - | ||||||||||||||||||||||||
| 243 | - | |||||||||||||||||||||||||
| 244 | if (pointer
| 0 | ||||||||||||||||||||||||
| 245 | dynlock_destroy_callback(pointer->data, __FILE__, 317); | - | ||||||||||||||||||||||||
| 246 | free(pointer); | - | ||||||||||||||||||||||||
| 247 | } never executed: end of block | 0 | ||||||||||||||||||||||||
| 248 | } never executed: end of block | 0 | ||||||||||||||||||||||||
| 249 | - | |||||||||||||||||||||||||
| 250 | struct CRYPTO_dynlock_value * | - | ||||||||||||||||||||||||
| 251 | CRYPTO_get_dynlock_value(int i) | - | ||||||||||||||||||||||||
| 252 | { | - | ||||||||||||||||||||||||
| 253 | CRYPTO_dynlock *pointer = | - | ||||||||||||||||||||||||
| 254 | ((void *)0) | - | ||||||||||||||||||||||||
| 255 | ; | - | ||||||||||||||||||||||||
| 256 | - | |||||||||||||||||||||||||
| 257 | if (i
| 0 | ||||||||||||||||||||||||
| 258 | i = -i - 1; never executed: i = -i - 1; | 0 | ||||||||||||||||||||||||
| 259 | - | |||||||||||||||||||||||||
| 260 | CRYPTO_lock(1|8,29,__FILE__,330); | - | ||||||||||||||||||||||||
| 261 | - | |||||||||||||||||||||||||
| 262 | if (dyn_locks !=
| 0 | ||||||||||||||||||||||||
| 263 | ((void *)0)
| 0 | ||||||||||||||||||||||||
| 264 | && i < sk_num(((_STACK*) (1 ? (dyn_locks) : (struct stack_st_CRYPTO_dynlock*)0)))
| 0 | ||||||||||||||||||||||||
| 265 | pointer = ((CRYPTO_dynlock *)sk_value(((_STACK*) (1 ? (dyn_locks) : (struct stack_st_CRYPTO_dynlock*)0)), (i))); never executed: pointer = ((CRYPTO_dynlock *)sk_value(((_STACK*) (1 ? (dyn_locks) : (struct stack_st_CRYPTO_dynlock*)0)), (i))); | 0 | ||||||||||||||||||||||||
| 266 | if (pointer
| 0 | ||||||||||||||||||||||||
| 267 | pointer->references++; never executed: pointer->references++; | 0 | ||||||||||||||||||||||||
| 268 | - | |||||||||||||||||||||||||
| 269 | CRYPTO_lock(2|8,29,__FILE__,337); | - | ||||||||||||||||||||||||
| 270 | - | |||||||||||||||||||||||||
| 271 | if (pointer
| 0 | ||||||||||||||||||||||||
| 272 | return never executed: pointer->data;return pointer->data;never executed: return pointer->data; | 0 | ||||||||||||||||||||||||
| 273 | return never executed: return ((void *)0) ;never executed: return ((void *)0) ; | 0 | ||||||||||||||||||||||||
| 274 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||||||||||||||||||||
| 275 | ; never executed: return ((void *)0) ; | 0 | ||||||||||||||||||||||||
| 276 | } | - | ||||||||||||||||||||||||
| 277 | - | |||||||||||||||||||||||||
| 278 | struct CRYPTO_dynlock_value * | - | ||||||||||||||||||||||||
| 279 | (*CRYPTO_get_dynlock_create_callback(void))(const char *file, int line) | - | ||||||||||||||||||||||||
| 280 | { | - | ||||||||||||||||||||||||
| 281 | return never executed: (dynlock_create_callback);return (dynlock_create_callback);never executed: return (dynlock_create_callback); | 0 | ||||||||||||||||||||||||
| 282 | } | - | ||||||||||||||||||||||||
| 283 | - | |||||||||||||||||||||||||
| 284 | void | - | ||||||||||||||||||||||||
| 285 | (*CRYPTO_get_dynlock_lock_callback(void))(int mode, | - | ||||||||||||||||||||||||
| 286 | struct CRYPTO_dynlock_value *l, const char *file, int line) | - | ||||||||||||||||||||||||
| 287 | { | - | ||||||||||||||||||||||||
| 288 | return never executed: (dynlock_lock_callback);return (dynlock_lock_callback);never executed: return (dynlock_lock_callback); | 0 | ||||||||||||||||||||||||
| 289 | } | - | ||||||||||||||||||||||||
| 290 | - | |||||||||||||||||||||||||
| 291 | void | - | ||||||||||||||||||||||||
| 292 | (*CRYPTO_get_dynlock_destroy_callback(void))(struct CRYPTO_dynlock_value *l, | - | ||||||||||||||||||||||||
| 293 | const char *file, int line) | - | ||||||||||||||||||||||||
| 294 | { | - | ||||||||||||||||||||||||
| 295 | return never executed: (dynlock_destroy_callback);return (dynlock_destroy_callback);never executed: return (dynlock_destroy_callback); | 0 | ||||||||||||||||||||||||
| 296 | } | - | ||||||||||||||||||||||||
| 297 | - | |||||||||||||||||||||||||
| 298 | void | - | ||||||||||||||||||||||||
| 299 | CRYPTO_set_dynlock_create_callback( | - | ||||||||||||||||||||||||
| 300 | struct CRYPTO_dynlock_value *(*func)(const char *file, int line)) | - | ||||||||||||||||||||||||
| 301 | { | - | ||||||||||||||||||||||||
| 302 | dynlock_create_callback = func; | - | ||||||||||||||||||||||||
| 303 | } never executed: end of block | 0 | ||||||||||||||||||||||||
| 304 | - | |||||||||||||||||||||||||
| 305 | void | - | ||||||||||||||||||||||||
| 306 | CRYPTO_set_dynlock_lock_callback(void (*func)(int mode, | - | ||||||||||||||||||||||||
| 307 | struct CRYPTO_dynlock_value *l, const char *file, int line)) | - | ||||||||||||||||||||||||
| 308 | { | - | ||||||||||||||||||||||||
| 309 | dynlock_lock_callback = func; | - | ||||||||||||||||||||||||
| 310 | } never executed: end of block | 0 | ||||||||||||||||||||||||
| 311 | - | |||||||||||||||||||||||||
| 312 | void | - | ||||||||||||||||||||||||
| 313 | CRYPTO_set_dynlock_destroy_callback( | - | ||||||||||||||||||||||||
| 314 | void (*func)(struct CRYPTO_dynlock_value *l, const char *file, int line)) | - | ||||||||||||||||||||||||
| 315 | { | - | ||||||||||||||||||||||||
| 316 | dynlock_destroy_callback = func; | - | ||||||||||||||||||||||||
| 317 | } never executed: end of block | 0 | ||||||||||||||||||||||||
| 318 | - | |||||||||||||||||||||||||
| 319 | void | - | ||||||||||||||||||||||||
| 320 | (*CRYPTO_get_locking_callback(void))(int mode, int type, const char *file, | - | ||||||||||||||||||||||||
| 321 | int line) | - | ||||||||||||||||||||||||
| 322 | { | - | ||||||||||||||||||||||||
| 323 | return never executed: (locking_callback);return (locking_callback);never executed: return (locking_callback); | 0 | ||||||||||||||||||||||||
| 324 | } | - | ||||||||||||||||||||||||
| 325 | - | |||||||||||||||||||||||||
| 326 | int | - | ||||||||||||||||||||||||
| 327 | (*CRYPTO_get_add_lock_callback(void))(int *num, int mount, int type, | - | ||||||||||||||||||||||||
| 328 | const char *file, int line) | - | ||||||||||||||||||||||||
| 329 | { | - | ||||||||||||||||||||||||
| 330 | return never executed: (add_lock_callback);return (add_lock_callback);never executed: return (add_lock_callback); | 0 | ||||||||||||||||||||||||
| 331 | } | - | ||||||||||||||||||||||||
| 332 | - | |||||||||||||||||||||||||
| 333 | void | - | ||||||||||||||||||||||||
| 334 | CRYPTO_set_locking_callback(void (*func)(int mode, int type, | - | ||||||||||||||||||||||||
| 335 | const char *file, int line)) | - | ||||||||||||||||||||||||
| 336 | { | - | ||||||||||||||||||||||||
| 337 | - | |||||||||||||||||||||||||
| 338 | - | |||||||||||||||||||||||||
| 339 | - | |||||||||||||||||||||||||
| 340 | locking_callback = func; | - | ||||||||||||||||||||||||
| 341 | } executed 261 times by 2 tests: end of blockExecuted by:
| 261 | ||||||||||||||||||||||||
| 342 | - | |||||||||||||||||||||||||
| 343 | void | - | ||||||||||||||||||||||||
| 344 | CRYPTO_set_add_lock_callback(int (*func)(int *num, int mount, int type, | - | ||||||||||||||||||||||||
| 345 | const char *file, int line)) | - | ||||||||||||||||||||||||
| 346 | { | - | ||||||||||||||||||||||||
| 347 | add_lock_callback = func; | - | ||||||||||||||||||||||||
| 348 | } never executed: end of block | 0 | ||||||||||||||||||||||||
| 349 | - | |||||||||||||||||||||||||
| 350 | - | |||||||||||||||||||||||||
| 351 | - | |||||||||||||||||||||||||
| 352 | - | |||||||||||||||||||||||||
| 353 | void | - | ||||||||||||||||||||||||
| 354 | CRYPTO_THREADID_set_numeric(CRYPTO_THREADID *id, unsigned long val) | - | ||||||||||||||||||||||||
| 355 | { | - | ||||||||||||||||||||||||
| 356 | memset(id, 0, sizeof(*id)); | - | ||||||||||||||||||||||||
| 357 | id->val = val; | - | ||||||||||||||||||||||||
| 358 | } never executed: end of block | 0 | ||||||||||||||||||||||||
| 359 | - | |||||||||||||||||||||||||
| 360 | void | - | ||||||||||||||||||||||||
| 361 | CRYPTO_THREADID_set_pointer(CRYPTO_THREADID *id, void *ptr) | - | ||||||||||||||||||||||||
| 362 | { | - | ||||||||||||||||||||||||
| 363 | memset(id, 0, sizeof(*id)); | - | ||||||||||||||||||||||||
| 364 | id->ptr = ptr; | - | ||||||||||||||||||||||||
| 365 | - | |||||||||||||||||||||||||
| 366 | - | |||||||||||||||||||||||||
| 367 | id->val = (uintptr_t)id->ptr; | - | ||||||||||||||||||||||||
| 368 | } executed 10741 times by 24 tests: end of blockExecuted by:
| 10741 | ||||||||||||||||||||||||
| 369 | - | |||||||||||||||||||||||||
| 370 | int | - | ||||||||||||||||||||||||
| 371 | CRYPTO_THREADID_set_callback(void (*func)(CRYPTO_THREADID *)) | - | ||||||||||||||||||||||||
| 372 | { | - | ||||||||||||||||||||||||
| 373 | if (threadid_callback
| 0 | ||||||||||||||||||||||||
| 374 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||||||||
| 375 | threadid_callback = func; | - | ||||||||||||||||||||||||
| 376 | return never executed: 1;return 1;never executed: return 1; | 0 | ||||||||||||||||||||||||
| 377 | } | - | ||||||||||||||||||||||||
| 378 | - | |||||||||||||||||||||||||
| 379 | void (*CRYPTO_THREADID_get_callback(void))(CRYPTO_THREADID *) | - | ||||||||||||||||||||||||
| 380 | { | - | ||||||||||||||||||||||||
| 381 | return never executed: threadid_callback;return threadid_callback;never executed: return threadid_callback; | 0 | ||||||||||||||||||||||||
| 382 | } | - | ||||||||||||||||||||||||
| 383 | - | |||||||||||||||||||||||||
| 384 | void | - | ||||||||||||||||||||||||
| 385 | CRYPTO_THREADID_current(CRYPTO_THREADID *id) | - | ||||||||||||||||||||||||
| 386 | { | - | ||||||||||||||||||||||||
| 387 | if (threadid_callback
| 0-10741 | ||||||||||||||||||||||||
| 388 | threadid_callback(id); | - | ||||||||||||||||||||||||
| 389 | return; never executed: return; | 0 | ||||||||||||||||||||||||
| 390 | } | - | ||||||||||||||||||||||||
| 391 | - | |||||||||||||||||||||||||
| 392 | - | |||||||||||||||||||||||||
| 393 | if (id_callback
| 0-10741 | ||||||||||||||||||||||||
| 394 | CRYPTO_THREADID_set_numeric(id, id_callback()); | - | ||||||||||||||||||||||||
| 395 | return; never executed: return; | 0 | ||||||||||||||||||||||||
| 396 | } | - | ||||||||||||||||||||||||
| 397 | - | |||||||||||||||||||||||||
| 398 | - | |||||||||||||||||||||||||
| 399 | - | |||||||||||||||||||||||||
| 400 | CRYPTO_THREADID_set_pointer(id, (void*)& | - | ||||||||||||||||||||||||
| 401 | (*__errno_location ()) | - | ||||||||||||||||||||||||
| 402 | ); | - | ||||||||||||||||||||||||
| 403 | } executed 10741 times by 24 tests: end of blockExecuted by:
| 10741 | ||||||||||||||||||||||||
| 404 | - | |||||||||||||||||||||||||
| 405 | int | - | ||||||||||||||||||||||||
| 406 | CRYPTO_THREADID_cmp(const CRYPTO_THREADID *a, const CRYPTO_THREADID *b) | - | ||||||||||||||||||||||||
| 407 | { | - | ||||||||||||||||||||||||
| 408 | return executed 10318 times by 20 tests: memcmp(a, b, sizeof(*a));return memcmp(a, b, sizeof(*a));Executed by:
executed 10318 times by 20 tests: return memcmp(a, b, sizeof(*a));Executed by:
| 10318 | ||||||||||||||||||||||||
| 409 | } | - | ||||||||||||||||||||||||
| 410 | - | |||||||||||||||||||||||||
| 411 | void | - | ||||||||||||||||||||||||
| 412 | CRYPTO_THREADID_cpy(CRYPTO_THREADID *dest, const CRYPTO_THREADID *src) | - | ||||||||||||||||||||||||
| 413 | { | - | ||||||||||||||||||||||||
| 414 | memcpy(dest, src, sizeof(*src)); | - | ||||||||||||||||||||||||
| 415 | } executed 9773 times by 20 tests: end of blockExecuted by:
| 9773 | ||||||||||||||||||||||||
| 416 | - | |||||||||||||||||||||||||
| 417 | unsigned long | - | ||||||||||||||||||||||||
| 418 | CRYPTO_THREADID_hash(const CRYPTO_THREADID *id) | - | ||||||||||||||||||||||||
| 419 | { | - | ||||||||||||||||||||||||
| 420 | return executed 10323 times by 20 tests: id->val;return id->val;Executed by:
executed 10323 times by 20 tests: return id->val;Executed by:
| 10323 | ||||||||||||||||||||||||
| 421 | } | - | ||||||||||||||||||||||||
| 422 | - | |||||||||||||||||||||||||
| 423 | - | |||||||||||||||||||||||||
| 424 | unsigned long (*CRYPTO_get_id_callback(void))(void) | - | ||||||||||||||||||||||||
| 425 | { | - | ||||||||||||||||||||||||
| 426 | return never executed: (id_callback);return (id_callback);never executed: return (id_callback); | 0 | ||||||||||||||||||||||||
| 427 | } | - | ||||||||||||||||||||||||
| 428 | - | |||||||||||||||||||||||||
| 429 | void | - | ||||||||||||||||||||||||
| 430 | CRYPTO_set_id_callback(unsigned long (*func)(void)) | - | ||||||||||||||||||||||||
| 431 | { | - | ||||||||||||||||||||||||
| 432 | id_callback = func; | - | ||||||||||||||||||||||||
| 433 | } never executed: end of block | 0 | ||||||||||||||||||||||||
| 434 | - | |||||||||||||||||||||||||
| 435 | unsigned long | - | ||||||||||||||||||||||||
| 436 | CRYPTO_thread_id(void) | - | ||||||||||||||||||||||||
| 437 | { | - | ||||||||||||||||||||||||
| 438 | unsigned long ret = 0; | - | ||||||||||||||||||||||||
| 439 | - | |||||||||||||||||||||||||
| 440 | if (id_callback ==
| 0 | ||||||||||||||||||||||||
| 441 | ((void *)0)
| 0 | ||||||||||||||||||||||||
| 442 | ) { | - | ||||||||||||||||||||||||
| 443 | ret = (unsigned long)getpid(); | - | ||||||||||||||||||||||||
| 444 | } never executed: elseend of block | 0 | ||||||||||||||||||||||||
| 445 | ret = id_callback(); never executed: ret = id_callback(); | 0 | ||||||||||||||||||||||||
| 446 | return never executed: (ret);return (ret);never executed: return (ret); | 0 | ||||||||||||||||||||||||
| 447 | } | - | ||||||||||||||||||||||||
| 448 | - | |||||||||||||||||||||||||
| 449 | - | |||||||||||||||||||||||||
| 450 | void | - | ||||||||||||||||||||||||
| 451 | CRYPTO_lock(int mode, int type, const char *file, int line) | - | ||||||||||||||||||||||||
| 452 | { | - | ||||||||||||||||||||||||
| 453 | if (type < 0
| 0-1942902 | ||||||||||||||||||||||||
| 454 | if (dynlock_lock_callback !=
| 0 | ||||||||||||||||||||||||
| 455 | ((void *)0)
| 0 | ||||||||||||||||||||||||
| 456 | ) { | - | ||||||||||||||||||||||||
| 457 | struct CRYPTO_dynlock_value *pointer = | - | ||||||||||||||||||||||||
| 458 | CRYPTO_get_dynlock_value(type); | - | ||||||||||||||||||||||||
| 459 | - | |||||||||||||||||||||||||
| 460 | (void)((pointer != | - | ||||||||||||||||||||||||
| 461 | ((void *)0) | - | ||||||||||||||||||||||||
| 462 | ) ? 0 : (OpenSSLDie(__FILE__, 556, "pointer != NULL"),1)); | - | ||||||||||||||||||||||||
| 463 | - | |||||||||||||||||||||||||
| 464 | dynlock_lock_callback(mode, pointer, file, line); | - | ||||||||||||||||||||||||
| 465 | - | |||||||||||||||||||||||||
| 466 | CRYPTO_destroy_dynlockid(type); | - | ||||||||||||||||||||||||
| 467 | } never executed: end of block | 0 | ||||||||||||||||||||||||
| 468 | } never executed: else if (locking_callback != end of block
| 0-1422882 | ||||||||||||||||||||||||
| 469 | ((void *)0)
| 520020-1422882 | ||||||||||||||||||||||||
| 470 | ) | - | ||||||||||||||||||||||||
| 471 | locking_callback(mode, type, file, line); executed 520020 times by 2 tests: locking_callback(mode, type, file, line);Executed by:
| 520020 | ||||||||||||||||||||||||
| 472 | } executed 1942902 times by 33 tests: end of blockExecuted by:
| 1942902 | ||||||||||||||||||||||||
| 473 | - | |||||||||||||||||||||||||
| 474 | int | - | ||||||||||||||||||||||||
| 475 | CRYPTO_add_lock(int *pointer, int amount, int type, const char *file, | - | ||||||||||||||||||||||||
| 476 | int line) | - | ||||||||||||||||||||||||
| 477 | { | - | ||||||||||||||||||||||||
| 478 | int ret = 0; | - | ||||||||||||||||||||||||
| 479 | - | |||||||||||||||||||||||||
| 480 | if (add_lock_callback !=
| 0-43858 | ||||||||||||||||||||||||
| 481 | ((void *)0)
| 0-43858 | ||||||||||||||||||||||||
| 482 | ) { | - | ||||||||||||||||||||||||
| 483 | - | |||||||||||||||||||||||||
| 484 | - | |||||||||||||||||||||||||
| 485 | - | |||||||||||||||||||||||||
| 486 | - | |||||||||||||||||||||||||
| 487 | ret = add_lock_callback(pointer, amount, type, file, line); | - | ||||||||||||||||||||||||
| 488 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||
| 489 | CRYPTO_lock(1|8, type, file, line); | - | ||||||||||||||||||||||||
| 490 | - | |||||||||||||||||||||||||
| 491 | ret= *pointer + amount; | - | ||||||||||||||||||||||||
| 492 | *pointer = ret; | - | ||||||||||||||||||||||||
| 493 | CRYPTO_lock(2|8, type, file, line); | - | ||||||||||||||||||||||||
| 494 | } executed 43858 times by 31 tests: end of blockExecuted by:
| 43858 | ||||||||||||||||||||||||
| 495 | return executed 43858 times by 31 tests: (ret);return (ret);Executed by:
executed 43858 times by 31 tests: return (ret);Executed by:
| 43858 | ||||||||||||||||||||||||
| 496 | } | - | ||||||||||||||||||||||||
| 497 | - | |||||||||||||||||||||||||
| 498 | const char * | - | ||||||||||||||||||||||||
| 499 | CRYPTO_get_lock_name(int type) | - | ||||||||||||||||||||||||
| 500 | { | - | ||||||||||||||||||||||||
| 501 | if (type < 0
| 0 | ||||||||||||||||||||||||
| 502 | return never executed: ("dynamic");return("dynamic");never executed: return("dynamic"); | 0 | ||||||||||||||||||||||||
| 503 | else if (type < 41
| 0 | ||||||||||||||||||||||||
| 504 | return never executed: (lock_names[type]);return (lock_names[type]);never executed: return (lock_names[type]); | 0 | ||||||||||||||||||||||||
| 505 | else if (type - 41 > sk_num(((_STACK*) (1 ? app_locks : (struct stack_st_OPENSSL_STRING*)0)))
| 0 | ||||||||||||||||||||||||
| 506 | return never executed: ("ERROR");return("ERROR");never executed: return("ERROR"); | 0 | ||||||||||||||||||||||||
| 507 | else | - | ||||||||||||||||||||||||
| 508 | return never executed: (((OPENSSL_STRING)sk_value(((_STACK*) (1 ? app_locks : (struct stack_st_OPENSSL_STRING*)0)), type - 41))return (((OPENSSL_STRING)sk_value(((_STACK*) (1 ? app_locks : (struct stack_st_OPENSSL_STRING*)0)), type - 41)) );never executed: return (((OPENSSL_STRING)sk_value(((_STACK*) (1 ? app_locks : (struct stack_st_OPENSSL_STRING*)0)), type - 41)) ); | 0 | ||||||||||||||||||||||||
| 509 | ); never executed: return (((OPENSSL_STRING)sk_value(((_STACK*) (1 ? app_locks : (struct stack_st_OPENSSL_STRING*)0)), type - 41)) ); | 0 | ||||||||||||||||||||||||
| 510 | } | - | ||||||||||||||||||||||||
| 511 | - | |||||||||||||||||||||||||
| 512 | - | |||||||||||||||||||||||||
| 513 | - | |||||||||||||||||||||||||
| 514 | - | |||||||||||||||||||||||||
| 515 | - | |||||||||||||||||||||||||
| 516 | uint64_t OPENSSL_ia32cap_P; | - | ||||||||||||||||||||||||
| 517 | - | |||||||||||||||||||||||||
| 518 | uint64_t | - | ||||||||||||||||||||||||
| 519 | OPENSSL_cpu_caps(void) | - | ||||||||||||||||||||||||
| 520 | { | - | ||||||||||||||||||||||||
| 521 | return executed 11601 times by 35 tests: OPENSSL_ia32cap_P;return OPENSSL_ia32cap_P;Executed by:
executed 11601 times by 35 tests: return OPENSSL_ia32cap_P;Executed by:
| 11601 | ||||||||||||||||||||||||
| 522 | } | - | ||||||||||||||||||||||||
| 523 | - | |||||||||||||||||||||||||
| 524 | - | |||||||||||||||||||||||||
| 525 | - | |||||||||||||||||||||||||
| 526 | void | - | ||||||||||||||||||||||||
| 527 | OPENSSL_cpuid_setup(void) | - | ||||||||||||||||||||||||
| 528 | { | - | ||||||||||||||||||||||||
| 529 | static int trigger = 0; | - | ||||||||||||||||||||||||
| 530 | uint64_t OPENSSL_ia32_cpuid(void); | - | ||||||||||||||||||||||||
| 531 | - | |||||||||||||||||||||||||
| 532 | if (trigger
| 309-505 | ||||||||||||||||||||||||
| 533 | return; executed 505 times by 33 tests: return;Executed by:
| 505 | ||||||||||||||||||||||||
| 534 | trigger = 1; | - | ||||||||||||||||||||||||
| 535 | OPENSSL_ia32cap_P = OPENSSL_ia32_cpuid(); | - | ||||||||||||||||||||||||
| 536 | } executed 309 times by 50 tests: end of blockExecuted by:
| 309 | ||||||||||||||||||||||||
| 537 | static void | - | ||||||||||||||||||||||||
| 538 | OPENSSL_showfatal(const char *fmta, ...) | - | ||||||||||||||||||||||||
| 539 | { | - | ||||||||||||||||||||||||
| 540 | va_list ap; | - | ||||||||||||||||||||||||
| 541 | - | |||||||||||||||||||||||||
| 542 | - | |||||||||||||||||||||||||
| 543 | __builtin_va_start( | - | ||||||||||||||||||||||||
| 544 | ap | - | ||||||||||||||||||||||||
| 545 | , | - | ||||||||||||||||||||||||
| 546 | fmta | - | ||||||||||||||||||||||||
| 547 | ) | - | ||||||||||||||||||||||||
| 548 | ; | - | ||||||||||||||||||||||||
| 549 | vfprintf( | - | ||||||||||||||||||||||||
| 550 | stderr | - | ||||||||||||||||||||||||
| 551 | , fmta, ap); | - | ||||||||||||||||||||||||
| 552 | - | |||||||||||||||||||||||||
| 553 | __builtin_va_end( | - | ||||||||||||||||||||||||
| 554 | ap | - | ||||||||||||||||||||||||
| 555 | ) | - | ||||||||||||||||||||||||
| 556 | ; | - | ||||||||||||||||||||||||
| 557 | } never executed: end of block | 0 | ||||||||||||||||||||||||
| 558 | - | |||||||||||||||||||||||||
| 559 | void | - | ||||||||||||||||||||||||
| 560 | OpenSSLDie(const char *file, int line, const char *assertion) | - | ||||||||||||||||||||||||
| 561 | { | - | ||||||||||||||||||||||||
| 562 | OPENSSL_showfatal( | - | ||||||||||||||||||||||||
| 563 | "%s(%d): OpenSSL internal error, assertion failed: %s\n", | - | ||||||||||||||||||||||||
| 564 | file, line, assertion); | - | ||||||||||||||||||||||||
| 565 | abort(); never executed: abort(); | 0 | ||||||||||||||||||||||||
| 566 | } | - | ||||||||||||||||||||||||
| 567 | - | |||||||||||||||||||||||||
| 568 | int | - | ||||||||||||||||||||||||
| 569 | CRYPTO_memcmp(const void *in_a, const void *in_b, size_t len) | - | ||||||||||||||||||||||||
| 570 | { | - | ||||||||||||||||||||||||
| 571 | size_t i; | - | ||||||||||||||||||||||||
| 572 | const unsigned char *a = in_a; | - | ||||||||||||||||||||||||
| 573 | const unsigned char *b = in_b; | - | ||||||||||||||||||||||||
| 574 | unsigned char x = 0; | - | ||||||||||||||||||||||||
| 575 | - | |||||||||||||||||||||||||
| 576 | for (i = 0; i < len
| 0 | ||||||||||||||||||||||||
| 577 | x |= a[i] ^ b[i]; never executed: x |= a[i] ^ b[i]; | 0 | ||||||||||||||||||||||||
| 578 | - | |||||||||||||||||||||||||
| 579 | return never executed: x;return x;never executed: return x; | 0 | ||||||||||||||||||||||||
| 580 | } | - | ||||||||||||||||||||||||
| Switch to Source code | Preprocessed file |