diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/libcrypto/err/err.c | 48 |
1 files changed, 25 insertions, 23 deletions
diff --git a/src/lib/libcrypto/err/err.c b/src/lib/libcrypto/err/err.c index f5128e1ef7..5f03c4cdb5 100644 --- a/src/lib/libcrypto/err/err.c +++ b/src/lib/libcrypto/err/err.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: err.c,v 1.69 2024/10/11 12:20:06 jsing Exp $ */ | 1 | /* $OpenBSD: err.c,v 1.70 2024/10/11 12:25:05 jsing Exp $ */ |
| 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
| 3 | * All rights reserved. | 3 | * All rights reserved. |
| 4 | * | 4 | * |
| @@ -533,24 +533,26 @@ err_build_SYS_str_reasons(void) | |||
| 533 | } | 533 | } |
| 534 | #endif | 534 | #endif |
| 535 | 535 | ||
| 536 | #define err_clear_data(p,i) \ | 536 | static void |
| 537 | do { \ | 537 | err_clear_data(ERR_STATE *s, int i) |
| 538 | if (((p)->err_data[i] != NULL) && \ | 538 | { |
| 539 | (p)->err_data_flags[i] & ERR_TXT_MALLOCED) { \ | 539 | if ((s->err_data_flags[i] & ERR_TXT_MALLOCED) != 0) |
| 540 | free((p)->err_data[i]); \ | 540 | free(s->err_data[i]); |
| 541 | (p)->err_data[i] = NULL; \ | 541 | |
| 542 | } \ | 542 | s->err_data[i] = NULL; |
| 543 | (p)->err_data_flags[i] = 0; \ | 543 | s->err_data_flags[i] = 0; |
| 544 | } while(0) | 544 | } |
| 545 | 545 | ||
| 546 | #define err_clear(p,i) \ | 546 | static void |
| 547 | do { \ | 547 | err_clear(ERR_STATE *s, int i) |
| 548 | (p)->err_flags[i] = 0; \ | 548 | { |
| 549 | (p)->err_buffer[i] = 0; \ | 549 | s->err_flags[i] = 0; |
| 550 | err_clear_data(p, i); \ | 550 | s->err_buffer[i] = 0; |
| 551 | (p)->err_file[i] = NULL; \ | 551 | s->err_file[i] = NULL; |
| 552 | (p)->err_line[i] = -1; \ | 552 | s->err_line[i] = -1; |
| 553 | } while(0) | 553 | |
| 554 | err_clear_data(s, i); | ||
| 555 | } | ||
| 554 | 556 | ||
| 555 | static void | 557 | static void |
| 556 | ERR_STATE_free(ERR_STATE *s) | 558 | ERR_STATE_free(ERR_STATE *s) |
| @@ -560,9 +562,9 @@ ERR_STATE_free(ERR_STATE *s) | |||
| 560 | if (s == NULL) | 562 | if (s == NULL) |
| 561 | return; | 563 | return; |
| 562 | 564 | ||
| 563 | for (i = 0; i < ERR_NUM_ERRORS; i++) { | 565 | for (i = 0; i < ERR_NUM_ERRORS; i++) |
| 564 | err_clear_data(s, i); | 566 | err_clear_data(s, i); |
| 565 | } | 567 | |
| 566 | free(s); | 568 | free(s); |
| 567 | } | 569 | } |
| 568 | 570 | ||
| @@ -831,9 +833,9 @@ ERR_clear_error(void) | |||
| 831 | 833 | ||
| 832 | es = ERR_get_state(); | 834 | es = ERR_get_state(); |
| 833 | 835 | ||
| 834 | for (i = 0; i < ERR_NUM_ERRORS; i++) { | 836 | for (i = 0; i < ERR_NUM_ERRORS; i++) |
| 835 | err_clear(es, i); | 837 | err_clear(es, i); |
| 836 | } | 838 | |
| 837 | es->top = es->bottom = 0; | 839 | es->top = es->bottom = 0; |
| 838 | } | 840 | } |
| 839 | LCRYPTO_ALIAS(ERR_clear_error); | 841 | LCRYPTO_ALIAS(ERR_clear_error); |
