Latest update
This commit is contained in:
+12
-24
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 1995-2019 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
|
||||
@@ -455,20 +455,11 @@ typedef struct mem_leak_st {
|
||||
static void print_leak(const MEM *m, MEM_LEAK *l)
|
||||
{
|
||||
char buf[1024];
|
||||
char *bufp = buf;
|
||||
char *bufp = buf, *hex;
|
||||
size_t len = sizeof(buf), ami_cnt;
|
||||
APP_INFO *amip;
|
||||
int n;
|
||||
struct tm *lcl = NULL;
|
||||
/*
|
||||
* Convert between CRYPTO_THREAD_ID (which could be anything at all) and
|
||||
* a long. This may not be meaningful depending on what CRYPTO_THREAD_ID is
|
||||
* but hopefully should give something sensible on most platforms
|
||||
*/
|
||||
union {
|
||||
CRYPTO_THREAD_ID tid;
|
||||
unsigned long ltid;
|
||||
} tid;
|
||||
CRYPTO_THREAD_ID ti;
|
||||
|
||||
lcl = localtime(&m->time);
|
||||
@@ -488,15 +479,11 @@ static void print_leak(const MEM *m, MEM_LEAK *l)
|
||||
bufp += n;
|
||||
len -= n;
|
||||
|
||||
tid.ltid = 0;
|
||||
tid.tid = m->threadid;
|
||||
n = BIO_snprintf(bufp, len, "thread=%lu, ", tid.ltid);
|
||||
if (n <= 0)
|
||||
return;
|
||||
bufp += n;
|
||||
len -= n;
|
||||
|
||||
n = BIO_snprintf(bufp, len, "number=%d, address=%p\n", m->num, m->addr);
|
||||
hex = OPENSSL_buf2hexstr((const unsigned char *)&m->threadid,
|
||||
sizeof(m->threadid));
|
||||
n = BIO_snprintf(bufp, len, "thread=%s, number=%d, address=%p\n", hex,
|
||||
m->num, m->addr);
|
||||
OPENSSL_free(hex);
|
||||
if (n <= 0)
|
||||
return;
|
||||
bufp += n;
|
||||
@@ -522,11 +509,12 @@ static void print_leak(const MEM *m, MEM_LEAK *l)
|
||||
break;
|
||||
memset(buf, '>', ami_cnt);
|
||||
buf[ami_cnt] = '\0';
|
||||
tid.ltid = 0;
|
||||
tid.tid = amip->threadid;
|
||||
hex = OPENSSL_buf2hexstr((const unsigned char *)&amip->threadid,
|
||||
sizeof(amip->threadid));
|
||||
n = BIO_snprintf(buf + ami_cnt, sizeof(buf) - ami_cnt,
|
||||
" thread=%lu, file=%s, line=%d, info=\"",
|
||||
tid.ltid, amip->file, amip->line);
|
||||
"thread=%s, file=%s, line=%d, info=\"",
|
||||
hex, amip->file, amip->line);
|
||||
OPENSSL_free(hex);
|
||||
if (n <= 0)
|
||||
break;
|
||||
buf_len = ami_cnt + n;
|
||||
|
||||
Reference in New Issue
Block a user