Loading Configure +1 −1 Original line number Diff line number Diff line Loading @@ -97,7 +97,7 @@ my $usage="Usage: Configure [no-<cipher> ...] [enable-<cipher> ...] [experimenta # Minimum warning options... any contributions to OpenSSL should at least get # past these. my $gcc_devteam_warn = "-Wall -pedantic -DPEDANTIC -Wno-long-long -Wsign-compare -Wmissing-prototypes -Wshadow -Wformat -Wtype-limits -Werror -DCRYPTO_MDEBUG_ALL -DCRYPTO_MDEBUG_ABORT -DREF_CHECK -DDEBUG_UNUSED"; my $gcc_devteam_warn = "-Wall -pedantic -DPEDANTIC -Wno-long-long -Wsign-compare -Wmissing-prototypes -Wshadow -Wformat -Wtype-limits -Werror -rdynamic -DCRYPTO_MDEBUG_ALL -DCRYPTO_MDEBUG_ABORT -DCRYPTO_MDEBUG_BACKTRACE -DREF_CHECK -DDEBUG_UNUSED"; # These are used in addition to $gcc_devteam_warn when the compiler is clang. # TODO(openssl-team): fix problems and investigate if (at least) the Loading crypto/mem_dbg.c +49 −26 Original line number Diff line number Diff line Loading @@ -117,6 +117,9 @@ #include <openssl/buffer.h> #include <openssl/bio.h> #include <openssl/lhash.h> #if defined(CRYPTO_MDEBUG_BACKTRACE) && defined(__GNUC__) # include <execinfo.h> #endif static int mh_mode = CRYPTO_MEM_CHECK_OFF; /* Loading Loading @@ -175,6 +178,10 @@ typedef struct mem_st unsigned long order; time_t time; APP_INFO *app_info; #if defined(CRYPTO_MDEBUG_BACKTRACE) && defined(__GNUC__) void *array[30]; size_t array_siz; #endif } MEM; static long options = /* extra information to be recorded */ Loading Loading @@ -515,6 +522,9 @@ void CRYPTO_dbg_malloc(void *addr, int num, const char *file, int line, m->time = time(NULL); else m->time = 0; #if defined(CRYPTO_MDEBUG_BACKTRACE) && defined(__GNUC__) m->array_siz = backtrace(m->array, OSSL_NELEM(m->array)); #endif CRYPTO_THREADID_current(&tmp.threadid); m->app_info = NULL; Loading Loading @@ -608,6 +618,9 @@ void CRYPTO_dbg_realloc(void *addr1, void *addr2, int num, #endif mp->addr = addr2; mp->num = num; #if defined(CRYPTO_MDEBUG_BACKTRACE) && defined(__GNUC__) mp->array_siz = backtrace(mp->array, OSSL_NELEM(mp->array)); #endif (void)lh_MEM_insert(mh, mp); } Loading Loading @@ -672,8 +685,7 @@ static void print_leak_doall_arg(const MEM *m, MEM_LEAK *l) amip = m->app_info; ami_cnt = 0; if (!amip) return; if (amip) { CRYPTO_THREADID_cpy(&ti, &amip->threadid); do { Loading Loading @@ -702,6 +714,7 @@ static void print_leak_doall_arg(const MEM *m, MEM_LEAK *l) amip = amip->next; } while (amip && !CRYPTO_THREADID_cmp(&amip->threadid, &ti)); } #ifdef LEVITTE_DEBUG_MEM if (amip) { Loading @@ -709,6 +722,16 @@ static void print_leak_doall_arg(const MEM *m, MEM_LEAK *l) abort(); } #endif #if defined(CRYPTO_MDEBUG_BACKTRACE) && defined(__GNUC__) { size_t i; char **strings = backtrace_symbols(m->array, m->array_siz); for (i = 0; i < m->array_siz; i++) fprintf(stderr, "##> %s\n", strings[i]); free(strings); } #endif } static IMPLEMENT_LHASH_DOALL_ARG_FN(print_leak, const MEM, MEM_LEAK) Loading Loading
Configure +1 −1 Original line number Diff line number Diff line Loading @@ -97,7 +97,7 @@ my $usage="Usage: Configure [no-<cipher> ...] [enable-<cipher> ...] [experimenta # Minimum warning options... any contributions to OpenSSL should at least get # past these. my $gcc_devteam_warn = "-Wall -pedantic -DPEDANTIC -Wno-long-long -Wsign-compare -Wmissing-prototypes -Wshadow -Wformat -Wtype-limits -Werror -DCRYPTO_MDEBUG_ALL -DCRYPTO_MDEBUG_ABORT -DREF_CHECK -DDEBUG_UNUSED"; my $gcc_devteam_warn = "-Wall -pedantic -DPEDANTIC -Wno-long-long -Wsign-compare -Wmissing-prototypes -Wshadow -Wformat -Wtype-limits -Werror -rdynamic -DCRYPTO_MDEBUG_ALL -DCRYPTO_MDEBUG_ABORT -DCRYPTO_MDEBUG_BACKTRACE -DREF_CHECK -DDEBUG_UNUSED"; # These are used in addition to $gcc_devteam_warn when the compiler is clang. # TODO(openssl-team): fix problems and investigate if (at least) the Loading
crypto/mem_dbg.c +49 −26 Original line number Diff line number Diff line Loading @@ -117,6 +117,9 @@ #include <openssl/buffer.h> #include <openssl/bio.h> #include <openssl/lhash.h> #if defined(CRYPTO_MDEBUG_BACKTRACE) && defined(__GNUC__) # include <execinfo.h> #endif static int mh_mode = CRYPTO_MEM_CHECK_OFF; /* Loading Loading @@ -175,6 +178,10 @@ typedef struct mem_st unsigned long order; time_t time; APP_INFO *app_info; #if defined(CRYPTO_MDEBUG_BACKTRACE) && defined(__GNUC__) void *array[30]; size_t array_siz; #endif } MEM; static long options = /* extra information to be recorded */ Loading Loading @@ -515,6 +522,9 @@ void CRYPTO_dbg_malloc(void *addr, int num, const char *file, int line, m->time = time(NULL); else m->time = 0; #if defined(CRYPTO_MDEBUG_BACKTRACE) && defined(__GNUC__) m->array_siz = backtrace(m->array, OSSL_NELEM(m->array)); #endif CRYPTO_THREADID_current(&tmp.threadid); m->app_info = NULL; Loading Loading @@ -608,6 +618,9 @@ void CRYPTO_dbg_realloc(void *addr1, void *addr2, int num, #endif mp->addr = addr2; mp->num = num; #if defined(CRYPTO_MDEBUG_BACKTRACE) && defined(__GNUC__) mp->array_siz = backtrace(mp->array, OSSL_NELEM(mp->array)); #endif (void)lh_MEM_insert(mh, mp); } Loading Loading @@ -672,8 +685,7 @@ static void print_leak_doall_arg(const MEM *m, MEM_LEAK *l) amip = m->app_info; ami_cnt = 0; if (!amip) return; if (amip) { CRYPTO_THREADID_cpy(&ti, &amip->threadid); do { Loading Loading @@ -702,6 +714,7 @@ static void print_leak_doall_arg(const MEM *m, MEM_LEAK *l) amip = amip->next; } while (amip && !CRYPTO_THREADID_cmp(&amip->threadid, &ti)); } #ifdef LEVITTE_DEBUG_MEM if (amip) { Loading @@ -709,6 +722,16 @@ static void print_leak_doall_arg(const MEM *m, MEM_LEAK *l) abort(); } #endif #if defined(CRYPTO_MDEBUG_BACKTRACE) && defined(__GNUC__) { size_t i; char **strings = backtrace_symbols(m->array, m->array_siz); for (i = 0; i < m->array_siz; i++) fprintf(stderr, "##> %s\n", strings[i]); free(strings); } #endif } static IMPLEMENT_LHASH_DOALL_ARG_FN(print_leak, const MEM, MEM_LEAK) Loading