diff options
Diffstat (limited to 'src/lib/libcrypto/mem_dbg.c')
| -rw-r--r-- | src/lib/libcrypto/mem_dbg.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/lib/libcrypto/mem_dbg.c b/src/lib/libcrypto/mem_dbg.c index 0beb3b36d1..ea94eee6f4 100644 --- a/src/lib/libcrypto/mem_dbg.c +++ b/src/lib/libcrypto/mem_dbg.c | |||
| @@ -585,6 +585,8 @@ static void print_leak(const MEM *m, MEM_LEAK *l) | |||
| 585 | struct tm *lcl = NULL; | 585 | struct tm *lcl = NULL; |
| 586 | unsigned long ti; | 586 | unsigned long ti; |
| 587 | 587 | ||
| 588 | #define BUF_REMAIN (sizeof buf - (size_t)(bufp - buf)) | ||
| 589 | |||
| 588 | if(m->addr == (char *)l->bio) | 590 | if(m->addr == (char *)l->bio) |
| 589 | return; | 591 | return; |
| 590 | 592 | ||
| @@ -592,22 +594,22 @@ static void print_leak(const MEM *m, MEM_LEAK *l) | |||
| 592 | { | 594 | { |
| 593 | lcl = localtime(&m->time); | 595 | lcl = localtime(&m->time); |
| 594 | 596 | ||
| 595 | sprintf(bufp, "[%02d:%02d:%02d] ", | 597 | snprintf(bufp, BUF_REMAIN, "[%02d:%02d:%02d] ", |
| 596 | lcl->tm_hour,lcl->tm_min,lcl->tm_sec); | 598 | lcl->tm_hour,lcl->tm_min,lcl->tm_sec); |
| 597 | bufp += strlen(bufp); | 599 | bufp += strlen(bufp); |
| 598 | } | 600 | } |
| 599 | 601 | ||
| 600 | sprintf(bufp, "%5lu file=%s, line=%d, ", | 602 | snprintf(bufp, BUF_REMAIN, "%5lu file=%s, line=%d, ", |
| 601 | m->order,m->file,m->line); | 603 | m->order,m->file,m->line); |
| 602 | bufp += strlen(bufp); | 604 | bufp += strlen(bufp); |
| 603 | 605 | ||
| 604 | if (options & V_CRYPTO_MDEBUG_THREAD) | 606 | if (options & V_CRYPTO_MDEBUG_THREAD) |
| 605 | { | 607 | { |
| 606 | sprintf(bufp, "thread=%lu, ", m->thread); | 608 | snprintf(bufp, BUF_REMAIN, "thread=%lu, ", m->thread); |
| 607 | bufp += strlen(bufp); | 609 | bufp += strlen(bufp); |
| 608 | } | 610 | } |
| 609 | 611 | ||
| 610 | sprintf(bufp, "number=%d, address=%08lX\n", | 612 | snprintf(bufp, BUF_REMAIN, "number=%d, address=%08lX\n", |
| 611 | m->num,(unsigned long)m->addr); | 613 | m->num,(unsigned long)m->addr); |
| 612 | bufp += strlen(bufp); | 614 | bufp += strlen(bufp); |
| 613 | 615 | ||
| @@ -682,7 +684,7 @@ void CRYPTO_mem_leaks(BIO *b) | |||
| 682 | (char *)&ml); | 684 | (char *)&ml); |
| 683 | if (ml.chunks != 0) | 685 | if (ml.chunks != 0) |
| 684 | { | 686 | { |
| 685 | sprintf(buf,"%ld bytes leaked in %d chunks\n", | 687 | snprintf(buf,sizeof buf,"%ld bytes leaked in %d chunks\n", |
| 686 | ml.bytes,ml.chunks); | 688 | ml.bytes,ml.chunks); |
| 687 | BIO_puts(b,buf); | 689 | BIO_puts(b,buf); |
| 688 | } | 690 | } |
