diff options
Diffstat (limited to 'lib/libssl/src/crypto/ui/ui_lib.c')
-rw-r--r-- | lib/libssl/src/crypto/ui/ui_lib.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/lib/libssl/src/crypto/ui/ui_lib.c b/lib/libssl/src/crypto/ui/ui_lib.c index 16946cad95b..cce9075ac1d 100644 --- a/lib/libssl/src/crypto/ui/ui_lib.c +++ b/lib/libssl/src/crypto/ui/ui_lib.c @@ -428,14 +428,14 @@ char *UI_construct_prompt(UI *ui, const char *object_desc, len += sizeof(prompt3) - 1; prompt = (char *)OPENSSL_malloc(len + 1); - strcpy(prompt, prompt1); - strcat(prompt, object_desc); + strlcpy(prompt, prompt1, len + 1); + strlcat(prompt, object_desc, len + 1); if (object_name) { - strcat(prompt, prompt2); - strcat(prompt, object_name); + strlcat(prompt, prompt2, len + 1); + strlcat(prompt, object_name, len + 1); } - strcat(prompt, prompt3); + strlcat(prompt, prompt3, len + 1); } return prompt; } @@ -863,7 +863,8 @@ int UI_set_result(UI *ui, UI_STRING *uis, const char *result) return -1; } - strcpy(uis->result_buf, result); + strlcpy(uis->result_buf, result, + uis->_.string_data.result_maxsize + 1); break; case UIT_BOOLEAN: { |