Loading crypto/err/openssl.txt +2 −0 Original line number Diff line number Diff line Loading @@ -1355,9 +1355,11 @@ UI_F_UI_DUP_INPUT_STRING:103:UI_dup_input_string UI_F_UI_DUP_USER_DATA:118:UI_dup_user_data UI_F_UI_DUP_VERIFY_STRING:106:UI_dup_verify_string UI_F_UI_GET0_RESULT:107:UI_get0_result UI_F_UI_GET_RESULT_LENGTH:119:UI_get_result_length UI_F_UI_NEW_METHOD:104:UI_new_method UI_F_UI_PROCESS:113:UI_process UI_F_UI_SET_RESULT:105:UI_set_result UI_F_UI_SET_RESULT_EX:120:UI_set_result_ex X509V3_F_A2I_GENERAL_NAME:164:a2i_GENERAL_NAME X509V3_F_ADDR_VALIDATE_PATH_INTERNAL:166:addr_validate_path_internal X509V3_F_ASIDENTIFIERCHOICE_CANONIZE:161:ASIdentifierChoice_canonize Loading crypto/ui/ui_err.c +3 −0 Original line number Diff line number Diff line Loading @@ -33,9 +33,12 @@ static const ERR_STRING_DATA UI_str_functs[] = { {ERR_PACK(ERR_LIB_UI, UI_F_UI_DUP_VERIFY_STRING, 0), "UI_dup_verify_string"}, {ERR_PACK(ERR_LIB_UI, UI_F_UI_GET0_RESULT, 0), "UI_get0_result"}, {ERR_PACK(ERR_LIB_UI, UI_F_UI_GET_RESULT_LENGTH, 0), "UI_get_result_length"}, {ERR_PACK(ERR_LIB_UI, UI_F_UI_NEW_METHOD, 0), "UI_new_method"}, {ERR_PACK(ERR_LIB_UI, UI_F_UI_PROCESS, 0), "UI_process"}, {ERR_PACK(ERR_LIB_UI, UI_F_UI_SET_RESULT, 0), "UI_set_result"}, {ERR_PACK(ERR_LIB_UI, UI_F_UI_SET_RESULT_EX, 0), "UI_set_result_ex"}, {0, NULL} }; Loading crypto/ui/ui_lib.c +49 −9 Original line number Diff line number Diff line Loading @@ -441,6 +441,19 @@ const char *UI_get0_result(UI *ui, int i) return UI_get0_result_string(sk_UI_STRING_value(ui->strings, i)); } int UI_get_result_length(UI *ui, int i) { if (i < 0) { UIerr(UI_F_UI_GET_RESULT_LENGTH, UI_R_INDEX_TOO_SMALL); return -1; } if (i >= sk_UI_STRING_num(ui->strings)) { UIerr(UI_F_UI_GET_RESULT_LENGTH, UI_R_INDEX_TOO_LARGE); return -1; } return UI_get_result_string_length(sk_UI_STRING_value(ui->strings, i)); } static int print_error(const char *str, size_t len, UI *ui) { UI_STRING uis; Loading Loading @@ -796,6 +809,21 @@ const char *UI_get0_result_string(UI_STRING *uis) return NULL; } int UI_get_result_string_length(UI_STRING *uis) { switch (uis->type) { case UIT_PROMPT: case UIT_VERIFY: return uis->result_len; case UIT_NONE: case UIT_BOOLEAN: case UIT_INFO: case UIT_ERROR: break; } return -1; } const char *UI_get0_test_string(UI_STRING *uis) { switch (uis->type) { Loading Loading @@ -843,8 +871,18 @@ int UI_get_result_maxsize(UI_STRING *uis) int UI_set_result(UI *ui, UI_STRING *uis, const char *result) { int l = strlen(result); #if 0 /* * This is placed here solely to preserve UI_F_UI_SET_RESULT * To be removed for OpenSSL 1.2.0 */ UIerr(UI_F_UI_SET_RESULT, ERR_R_DISABLED); #endif return UI_set_result_ex(ui, uis, result, strlen(result)); } int UI_set_result_ex(UI *ui, UI_STRING *uis, const char *result, int len) { ui->flags &= ~UI_FLAG_REDOABLE; switch (uis->type) { Loading @@ -859,16 +897,16 @@ int UI_set_result(UI *ui, UI_STRING *uis, const char *result) BIO_snprintf(number2, sizeof(number2), "%d", uis->_.string_data.result_maxsize); if (l < uis->_.string_data.result_minsize) { if (len < uis->_.string_data.result_minsize) { ui->flags |= UI_FLAG_REDOABLE; UIerr(UI_F_UI_SET_RESULT, UI_R_RESULT_TOO_SMALL); UIerr(UI_F_UI_SET_RESULT_EX, UI_R_RESULT_TOO_SMALL); ERR_add_error_data(5, "You must type in ", number1, " to ", number2, " characters"); return -1; } if (l > uis->_.string_data.result_maxsize) { if (len > uis->_.string_data.result_maxsize) { ui->flags |= UI_FLAG_REDOABLE; UIerr(UI_F_UI_SET_RESULT, UI_R_RESULT_TOO_LARGE); UIerr(UI_F_UI_SET_RESULT_EX, UI_R_RESULT_TOO_LARGE); ERR_add_error_data(5, "You must type in ", number1, " to ", number2, " characters"); return -1; Loading @@ -876,19 +914,21 @@ int UI_set_result(UI *ui, UI_STRING *uis, const char *result) } if (uis->result_buf == NULL) { UIerr(UI_F_UI_SET_RESULT, UI_R_NO_RESULT_BUFFER); UIerr(UI_F_UI_SET_RESULT_EX, UI_R_NO_RESULT_BUFFER); return -1; } OPENSSL_strlcpy(uis->result_buf, result, uis->_.string_data.result_maxsize + 1); memcpy(uis->result_buf, result, len); if (len <= uis->_.string_data.result_maxsize) uis->result_buf[len] = '\0'; uis->result_len = len; break; case UIT_BOOLEAN: { const char *p; if (uis->result_buf == NULL) { UIerr(UI_F_UI_SET_RESULT, UI_R_NO_RESULT_BUFFER); UIerr(UI_F_UI_SET_RESULT_EX, UI_R_NO_RESULT_BUFFER); return -1; } Loading crypto/ui/ui_locl.h +1 −0 Original line number Diff line number Diff line Loading @@ -71,6 +71,7 @@ struct ui_string_st { * Otherwise, it may be allocated by the UI * routine, meaning result_minsize is going * to be overwritten. */ size_t result_len; union { struct { int result_minsize; /* Input: minimum required size of the Loading crypto/ui/ui_util.c +1 −1 Original line number Diff line number Diff line Loading @@ -116,7 +116,7 @@ static int ui_read(UI *ui, UI_STRING *uis) result[len] = '\0'; if (len <= 0) return len; if (UI_set_result(ui, uis, result) >= 0) if (UI_set_result_ex(ui, uis, result, len) >= 0) return 1; return 0; } Loading Loading
crypto/err/openssl.txt +2 −0 Original line number Diff line number Diff line Loading @@ -1355,9 +1355,11 @@ UI_F_UI_DUP_INPUT_STRING:103:UI_dup_input_string UI_F_UI_DUP_USER_DATA:118:UI_dup_user_data UI_F_UI_DUP_VERIFY_STRING:106:UI_dup_verify_string UI_F_UI_GET0_RESULT:107:UI_get0_result UI_F_UI_GET_RESULT_LENGTH:119:UI_get_result_length UI_F_UI_NEW_METHOD:104:UI_new_method UI_F_UI_PROCESS:113:UI_process UI_F_UI_SET_RESULT:105:UI_set_result UI_F_UI_SET_RESULT_EX:120:UI_set_result_ex X509V3_F_A2I_GENERAL_NAME:164:a2i_GENERAL_NAME X509V3_F_ADDR_VALIDATE_PATH_INTERNAL:166:addr_validate_path_internal X509V3_F_ASIDENTIFIERCHOICE_CANONIZE:161:ASIdentifierChoice_canonize Loading
crypto/ui/ui_err.c +3 −0 Original line number Diff line number Diff line Loading @@ -33,9 +33,12 @@ static const ERR_STRING_DATA UI_str_functs[] = { {ERR_PACK(ERR_LIB_UI, UI_F_UI_DUP_VERIFY_STRING, 0), "UI_dup_verify_string"}, {ERR_PACK(ERR_LIB_UI, UI_F_UI_GET0_RESULT, 0), "UI_get0_result"}, {ERR_PACK(ERR_LIB_UI, UI_F_UI_GET_RESULT_LENGTH, 0), "UI_get_result_length"}, {ERR_PACK(ERR_LIB_UI, UI_F_UI_NEW_METHOD, 0), "UI_new_method"}, {ERR_PACK(ERR_LIB_UI, UI_F_UI_PROCESS, 0), "UI_process"}, {ERR_PACK(ERR_LIB_UI, UI_F_UI_SET_RESULT, 0), "UI_set_result"}, {ERR_PACK(ERR_LIB_UI, UI_F_UI_SET_RESULT_EX, 0), "UI_set_result_ex"}, {0, NULL} }; Loading
crypto/ui/ui_lib.c +49 −9 Original line number Diff line number Diff line Loading @@ -441,6 +441,19 @@ const char *UI_get0_result(UI *ui, int i) return UI_get0_result_string(sk_UI_STRING_value(ui->strings, i)); } int UI_get_result_length(UI *ui, int i) { if (i < 0) { UIerr(UI_F_UI_GET_RESULT_LENGTH, UI_R_INDEX_TOO_SMALL); return -1; } if (i >= sk_UI_STRING_num(ui->strings)) { UIerr(UI_F_UI_GET_RESULT_LENGTH, UI_R_INDEX_TOO_LARGE); return -1; } return UI_get_result_string_length(sk_UI_STRING_value(ui->strings, i)); } static int print_error(const char *str, size_t len, UI *ui) { UI_STRING uis; Loading Loading @@ -796,6 +809,21 @@ const char *UI_get0_result_string(UI_STRING *uis) return NULL; } int UI_get_result_string_length(UI_STRING *uis) { switch (uis->type) { case UIT_PROMPT: case UIT_VERIFY: return uis->result_len; case UIT_NONE: case UIT_BOOLEAN: case UIT_INFO: case UIT_ERROR: break; } return -1; } const char *UI_get0_test_string(UI_STRING *uis) { switch (uis->type) { Loading Loading @@ -843,8 +871,18 @@ int UI_get_result_maxsize(UI_STRING *uis) int UI_set_result(UI *ui, UI_STRING *uis, const char *result) { int l = strlen(result); #if 0 /* * This is placed here solely to preserve UI_F_UI_SET_RESULT * To be removed for OpenSSL 1.2.0 */ UIerr(UI_F_UI_SET_RESULT, ERR_R_DISABLED); #endif return UI_set_result_ex(ui, uis, result, strlen(result)); } int UI_set_result_ex(UI *ui, UI_STRING *uis, const char *result, int len) { ui->flags &= ~UI_FLAG_REDOABLE; switch (uis->type) { Loading @@ -859,16 +897,16 @@ int UI_set_result(UI *ui, UI_STRING *uis, const char *result) BIO_snprintf(number2, sizeof(number2), "%d", uis->_.string_data.result_maxsize); if (l < uis->_.string_data.result_minsize) { if (len < uis->_.string_data.result_minsize) { ui->flags |= UI_FLAG_REDOABLE; UIerr(UI_F_UI_SET_RESULT, UI_R_RESULT_TOO_SMALL); UIerr(UI_F_UI_SET_RESULT_EX, UI_R_RESULT_TOO_SMALL); ERR_add_error_data(5, "You must type in ", number1, " to ", number2, " characters"); return -1; } if (l > uis->_.string_data.result_maxsize) { if (len > uis->_.string_data.result_maxsize) { ui->flags |= UI_FLAG_REDOABLE; UIerr(UI_F_UI_SET_RESULT, UI_R_RESULT_TOO_LARGE); UIerr(UI_F_UI_SET_RESULT_EX, UI_R_RESULT_TOO_LARGE); ERR_add_error_data(5, "You must type in ", number1, " to ", number2, " characters"); return -1; Loading @@ -876,19 +914,21 @@ int UI_set_result(UI *ui, UI_STRING *uis, const char *result) } if (uis->result_buf == NULL) { UIerr(UI_F_UI_SET_RESULT, UI_R_NO_RESULT_BUFFER); UIerr(UI_F_UI_SET_RESULT_EX, UI_R_NO_RESULT_BUFFER); return -1; } OPENSSL_strlcpy(uis->result_buf, result, uis->_.string_data.result_maxsize + 1); memcpy(uis->result_buf, result, len); if (len <= uis->_.string_data.result_maxsize) uis->result_buf[len] = '\0'; uis->result_len = len; break; case UIT_BOOLEAN: { const char *p; if (uis->result_buf == NULL) { UIerr(UI_F_UI_SET_RESULT, UI_R_NO_RESULT_BUFFER); UIerr(UI_F_UI_SET_RESULT_EX, UI_R_NO_RESULT_BUFFER); return -1; } Loading
crypto/ui/ui_locl.h +1 −0 Original line number Diff line number Diff line Loading @@ -71,6 +71,7 @@ struct ui_string_st { * Otherwise, it may be allocated by the UI * routine, meaning result_minsize is going * to be overwritten. */ size_t result_len; union { struct { int result_minsize; /* Input: minimum required size of the Loading
crypto/ui/ui_util.c +1 −1 Original line number Diff line number Diff line Loading @@ -116,7 +116,7 @@ static int ui_read(UI *ui, UI_STRING *uis) result[len] = '\0'; if (len <= 0) return len; if (UI_set_result(ui, uis, result) >= 0) if (UI_set_result_ex(ui, uis, result, len) >= 0) return 1; return 0; } Loading