diff --git a/crypto/err/err.c b/crypto/err/err.c index 29e5a031972456afbbfa5c528c747bc2b20f3003..44a293ad425f96b3314816af8f534e7b05f920b6 100644 --- a/crypto/err/err.c +++ b/crypto/err/err.c @@ -52,6 +52,7 @@ static ERR_STRING_DATA ERR_str_libraries[] = { {ERR_PACK(ERR_LIB_TS, 0, 0), "time stamp routines"}, {ERR_PACK(ERR_LIB_ENGINE, 0, 0), "engine routines"}, {ERR_PACK(ERR_LIB_OCSP, 0, 0), "OCSP routines"}, + {ERR_PACK(ERR_LIB_UI, 0, 0), "UI routines"}, {ERR_PACK(ERR_LIB_FIPS, 0, 0), "FIPS routines"}, {ERR_PACK(ERR_LIB_CMS, 0, 0), "CMS routines"}, {ERR_PACK(ERR_LIB_HMAC, 0, 0), "HMAC routines"}, diff --git a/crypto/ui/ui_err.c b/crypto/ui/ui_err.c index b89f9aebb5ad319b99079cd5d315e63d81238a50..eaaa4f58e95511001be0a3993b2986ff19b40315 100644 --- a/crypto/ui/ui_err.c +++ b/crypto/ui/ui_err.c @@ -21,6 +21,7 @@ static ERR_STRING_DATA UI_str_functs[] = { {ERR_FUNC(UI_F_GENERAL_ALLOCATE_BOOLEAN), "general_allocate_boolean"}, {ERR_FUNC(UI_F_GENERAL_ALLOCATE_PROMPT), "general_allocate_prompt"}, + {ERR_FUNC(UI_F_OPEN_CONSOLE), "open_console"}, {ERR_FUNC(UI_F_UI_CREATE_METHOD), "UI_create_method"}, {ERR_FUNC(UI_F_UI_CTRL), "UI_ctrl"}, {ERR_FUNC(UI_F_UI_DUP_ERROR_STRING), "UI_dup_error_string"}, @@ -45,6 +46,8 @@ static ERR_STRING_DATA UI_str_reasons[] = { {ERR_REASON(UI_R_RESULT_TOO_LARGE), "result too large"}, {ERR_REASON(UI_R_RESULT_TOO_SMALL), "result too small"}, {ERR_REASON(UI_R_UNKNOWN_CONTROL_COMMAND), "unknown control command"}, + {ERR_REASON(UI_R_UNKNOWN_TTYGET_ERRNO_VALUE), + "unknown ttyget errno value"}, {0, NULL} }; diff --git a/crypto/ui/ui_openssl.c b/crypto/ui/ui_openssl.c index bdd07f90d3c79c829c0a597340dd3d82a58feea1..a9acd98b4a12cf778788295098890920bf1ba750 100644 --- a/crypto/ui/ui_openssl.c +++ b/crypto/ui/ui_openssl.c @@ -8,6 +8,7 @@ */ #include +#include /* * need for #define _POSIX_C_SOURCE arises whenever you pass -ansi to gcc @@ -428,7 +429,14 @@ static int open_console(UI *ui) is_a_tty = 0; else # endif - return 0; + { + char tmp_num[10]; + BIO_snprintf(tmp_num, sizeof(tmp_num) - 1, "%d", errno); + UIerr(UI_F_OPEN_CONSOLE, UI_R_UNKNOWN_TTYGET_ERRNO_VALUE); + ERR_add_error_data(2, "errno=", tmp_num); + + return 0; + } } #endif #ifdef OPENSSL_SYS_VMS diff --git a/include/openssl/ui.h b/include/openssl/ui.h index c62c05d17ee178124be62f08c339819134f20b74..4337e914f93f11ad55b9d2e9103c86d0d682e2a3 100644 --- a/include/openssl/ui.h +++ b/include/openssl/ui.h @@ -341,6 +341,7 @@ int ERR_load_UI_strings(void); /* Function codes. */ # define UI_F_GENERAL_ALLOCATE_BOOLEAN 108 # define UI_F_GENERAL_ALLOCATE_PROMPT 109 +# define UI_F_OPEN_CONSOLE 114 # define UI_F_UI_CREATE_METHOD 112 # define UI_F_UI_CTRL 111 # define UI_F_UI_DUP_ERROR_STRING 101 @@ -362,6 +363,7 @@ int ERR_load_UI_strings(void); # define UI_R_RESULT_TOO_LARGE 100 # define UI_R_RESULT_TOO_SMALL 101 # define UI_R_UNKNOWN_CONTROL_COMMAND 106 +# define UI_R_UNKNOWN_TTYGET_ERRNO_VALUE 108 # ifdef __cplusplus }