File tree Expand file tree Collapse file tree 1 file changed +13
-3
lines changed Expand file tree Collapse file tree 1 file changed +13
-3
lines changed Original file line number Diff line number Diff line change 17
17
*/
18
18
#include "internal/e_os.h"
19
19
#include <openssl/crypto.h>
20
+ #include <openssl/err.h>
20
21
21
22
#include <string.h>
22
23
@@ -140,18 +141,27 @@ int CRYPTO_secure_malloc_initialized(void)
140
141
void * CRYPTO_secure_malloc (size_t num , const char * file , int line )
141
142
{
142
143
#ifndef OPENSSL_NO_SECURE_MEMORY
143
- void * ret ;
144
+ void * ret = NULL ;
144
145
size_t actual_size ;
146
+ int reason = CRYPTO_R_SECURE_MALLOC_FAILURE ;
145
147
146
148
if (!secure_mem_initialized ) {
147
149
return CRYPTO_malloc (num , file , line );
148
150
}
149
- if (!CRYPTO_THREAD_write_lock (sec_malloc_lock ))
150
- return NULL ;
151
+ if (!CRYPTO_THREAD_write_lock (sec_malloc_lock )) {
152
+ reason = ERR_R_CRYPTO_LIB ;
153
+ goto err ;
154
+ }
151
155
ret = sh_malloc (num );
152
156
actual_size = ret ? sh_actual_size (ret ) : 0 ;
153
157
secure_mem_used += actual_size ;
154
158
CRYPTO_THREAD_unlock (sec_malloc_lock );
159
+ err :
160
+ if (ret == NULL && (file != NULL || line != 0 )) {
161
+ ERR_new ();
162
+ ERR_set_debug (file , line , NULL );
163
+ ERR_set_error (ERR_LIB_CRYPTO , reason , NULL );
164
+ }
155
165
return ret ;
156
166
#else
157
167
return CRYPTO_malloc (num , file , line );
You can’t perform that action at this time.
0 commit comments