diff options
Diffstat (limited to 'src/lib')
-rw-r--r-- | src/lib/libcrypto/ui/ui_lib.c | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/src/lib/libcrypto/ui/ui_lib.c b/src/lib/libcrypto/ui/ui_lib.c index e36c270a87..8811bf86c7 100644 --- a/src/lib/libcrypto/ui/ui_lib.c +++ b/src/lib/libcrypto/ui/ui_lib.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ui_lib.c,v 1.48 2022/12/23 02:26:16 jsing Exp $ */ | 1 | /* $OpenBSD: ui_lib.c,v 1.49 2022/12/23 02:27:47 jsing Exp $ */ |
2 | /* Written by Richard Levitte (richard@levitte.org) for the OpenSSL | 2 | /* Written by Richard Levitte (richard@levitte.org) for the OpenSSL |
3 | * project 2001. | 3 | * project 2001. |
4 | */ | 4 | */ |
@@ -561,16 +561,25 @@ UI_set_method(UI *ui, const UI_METHOD *meth) | |||
561 | } | 561 | } |
562 | LCRYPTO_ALIAS(UI_set_method) | 562 | LCRYPTO_ALIAS(UI_set_method) |
563 | 563 | ||
564 | |||
565 | UI_METHOD * | 564 | UI_METHOD * |
566 | UI_create_method(const char *name) | 565 | UI_create_method(const char *name) |
567 | { | 566 | { |
568 | UI_METHOD *ui_method = calloc(1, sizeof(UI_METHOD)); | 567 | UI_METHOD *method = NULL; |
568 | |||
569 | if ((method = calloc(1, sizeof(UI_METHOD))) == NULL) | ||
570 | goto err; | ||
569 | 571 | ||
570 | if (ui_method && name) | 572 | if (name != NULL) { |
571 | ui_method->name = strdup(name); | 573 | if ((method->name = strdup(name)) == NULL) |
574 | goto err; | ||
575 | } | ||
572 | 576 | ||
573 | return ui_method; | 577 | return method; |
578 | |||
579 | err: | ||
580 | UI_destroy_method(method); | ||
581 | |||
582 | return NULL; | ||
574 | } | 583 | } |
575 | LCRYPTO_ALIAS(UI_create_method) | 584 | LCRYPTO_ALIAS(UI_create_method) |
576 | 585 | ||