diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/libcrypto/ui/ui_lib.c | 37 | ||||
| -rw-r--r-- | src/lib/libssl/src/crypto/ui/ui_lib.c | 37 |
2 files changed, 24 insertions, 50 deletions
diff --git a/src/lib/libcrypto/ui/ui_lib.c b/src/lib/libcrypto/ui/ui_lib.c index 5f9b484105..c19d894d4e 100644 --- a/src/lib/libcrypto/ui/ui_lib.c +++ b/src/lib/libcrypto/ui/ui_lib.c | |||
| @@ -388,33 +388,20 @@ UI_dup_error_string(UI *ui, const char *text) | |||
| 388 | char * | 388 | char * |
| 389 | UI_construct_prompt(UI *ui, const char *object_desc, const char *object_name) | 389 | UI_construct_prompt(UI *ui, const char *object_desc, const char *object_name) |
| 390 | { | 390 | { |
| 391 | char *prompt = NULL; | 391 | char *format = "Enter %s for %s:"; |
| 392 | char *prompt; | ||
| 392 | 393 | ||
| 393 | if (ui->meth->ui_construct_prompt) | 394 | if (ui->meth->ui_construct_prompt) |
| 394 | prompt = ui->meth->ui_construct_prompt(ui, | 395 | return ui->meth->ui_construct_prompt(ui, object_desc, |
| 395 | object_desc, object_name); | 396 | object_name); |
| 396 | else { | 397 | |
| 397 | char prompt1[] = "Enter "; | 398 | if (object_desc == NULL) |
| 398 | char prompt2[] = " for "; | 399 | return NULL; |
| 399 | char prompt3[] = ":"; | 400 | if (object_name == NULL) |
| 400 | int len = 0; | 401 | format = "Enter %s:"; |
| 401 | 402 | if (asprintf(&prompt, format, object_desc, object_name) == -1) | |
| 402 | if (object_desc == NULL) | 403 | return NULL; |
| 403 | return NULL; | 404 | |
| 404 | len = sizeof(prompt1) - 1 + strlen(object_desc); | ||
| 405 | if (object_name) | ||
| 406 | len += sizeof(prompt2) - 1 + strlen(object_name); | ||
| 407 | len += sizeof(prompt3) - 1; | ||
| 408 | |||
| 409 | prompt = (char *)malloc(len + 1); | ||
| 410 | strlcpy(prompt, prompt1, len + 1); | ||
| 411 | strlcat(prompt, object_desc, len + 1); | ||
| 412 | if (object_name) { | ||
| 413 | strlcat(prompt, prompt2, len + 1); | ||
| 414 | strlcat(prompt, object_name, len + 1); | ||
| 415 | } | ||
| 416 | strlcat(prompt, prompt3, len + 1); | ||
| 417 | } | ||
| 418 | return prompt; | 405 | return prompt; |
| 419 | } | 406 | } |
| 420 | 407 | ||
diff --git a/src/lib/libssl/src/crypto/ui/ui_lib.c b/src/lib/libssl/src/crypto/ui/ui_lib.c index 5f9b484105..c19d894d4e 100644 --- a/src/lib/libssl/src/crypto/ui/ui_lib.c +++ b/src/lib/libssl/src/crypto/ui/ui_lib.c | |||
| @@ -388,33 +388,20 @@ UI_dup_error_string(UI *ui, const char *text) | |||
| 388 | char * | 388 | char * |
| 389 | UI_construct_prompt(UI *ui, const char *object_desc, const char *object_name) | 389 | UI_construct_prompt(UI *ui, const char *object_desc, const char *object_name) |
| 390 | { | 390 | { |
| 391 | char *prompt = NULL; | 391 | char *format = "Enter %s for %s:"; |
| 392 | char *prompt; | ||
| 392 | 393 | ||
| 393 | if (ui->meth->ui_construct_prompt) | 394 | if (ui->meth->ui_construct_prompt) |
| 394 | prompt = ui->meth->ui_construct_prompt(ui, | 395 | return ui->meth->ui_construct_prompt(ui, object_desc, |
| 395 | object_desc, object_name); | 396 | object_name); |
| 396 | else { | 397 | |
| 397 | char prompt1[] = "Enter "; | 398 | if (object_desc == NULL) |
| 398 | char prompt2[] = " for "; | 399 | return NULL; |
| 399 | char prompt3[] = ":"; | 400 | if (object_name == NULL) |
| 400 | int len = 0; | 401 | format = "Enter %s:"; |
| 401 | 402 | if (asprintf(&prompt, format, object_desc, object_name) == -1) | |
| 402 | if (object_desc == NULL) | 403 | return NULL; |
| 403 | return NULL; | 404 | |
| 404 | len = sizeof(prompt1) - 1 + strlen(object_desc); | ||
| 405 | if (object_name) | ||
| 406 | len += sizeof(prompt2) - 1 + strlen(object_name); | ||
| 407 | len += sizeof(prompt3) - 1; | ||
| 408 | |||
| 409 | prompt = (char *)malloc(len + 1); | ||
| 410 | strlcpy(prompt, prompt1, len + 1); | ||
| 411 | strlcat(prompt, object_desc, len + 1); | ||
| 412 | if (object_name) { | ||
| 413 | strlcat(prompt, prompt2, len + 1); | ||
| 414 | strlcat(prompt, object_name, len + 1); | ||
| 415 | } | ||
| 416 | strlcat(prompt, prompt3, len + 1); | ||
| 417 | } | ||
| 418 | return prompt; | 405 | return prompt; |
| 419 | } | 406 | } |
| 420 | 407 | ||
