projects
/
openssl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
RSA, DSA, DH: Allow some given input to be NULL on already initialised keys
[openssl.git]
/
crypto
/
ui
/
ui_lib.c
diff --git
a/crypto/ui/ui_lib.c
b/crypto/ui/ui_lib.c
index 9ba844eacb0e23c908a3d7071a58be8308a92dde..7b08107f7a46ff2c69f6070a2ae3231b879adb47 100644
(file)
--- a/
crypto/ui/ui_lib.c
+++ b/
crypto/ui/ui_lib.c
@@
-1,4
+1,3
@@
-/* crypto/ui/ui_lib.c -*- mode:C; c-file-style: "eay" -*- */
/*
* Written by Richard Levitte (richard@levitte.org) for the OpenSSL project
* 2001.
/*
* Written by Richard Levitte (richard@levitte.org) for the OpenSSL project
* 2001.
@@
-74,20
+73,25
@@
UI *UI_new(void)
UI *UI_new_method(const UI_METHOD *method)
{
UI *UI_new_method(const UI_METHOD *method)
{
- UI *ret = OPENSSL_
m
alloc(sizeof(*ret));
+ UI *ret = OPENSSL_
z
alloc(sizeof(*ret));
if (ret == NULL) {
UIerr(UI_F_UI_NEW_METHOD, ERR_R_MALLOC_FAILURE);
return NULL;
}
if (ret == NULL) {
UIerr(UI_F_UI_NEW_METHOD, ERR_R_MALLOC_FAILURE);
return NULL;
}
+
+ ret->lock = CRYPTO_THREAD_lock_new();
+ if (ret->lock == NULL) {
+ UIerr(UI_F_UI_NEW_METHOD, ERR_R_MALLOC_FAILURE);
+ OPENSSL_free(ret);
+ return NULL;
+ }
+
if (method == NULL)
ret->meth = UI_get_default_method();
else
ret->meth = method;
if (method == NULL)
ret->meth = UI_get_default_method();
else
ret->meth = method;
- ret->strings = NULL;
- ret->user_data = NULL;
- ret->flags = 0;
CRYPTO_new_ex_data(CRYPTO_EX_INDEX_UI, ret, &ret->ex_data);
return ret;
}
CRYPTO_new_ex_data(CRYPTO_EX_INDEX_UI, ret, &ret->ex_data);
return ret;
}
@@
-115,6
+119,7
@@
void UI_free(UI *ui)
return;
sk_UI_STRING_pop_free(ui->strings, free_string);
CRYPTO_free_ex_data(CRYPTO_EX_INDEX_UI, ui, &ui->ex_data);
return;
sk_UI_STRING_pop_free(ui->strings, free_string);
CRYPTO_free_ex_data(CRYPTO_EX_INDEX_UI, ui, &ui->ex_data);
+ CRYPTO_THREAD_lock_free(ui->lock);
OPENSSL_free(ui);
}
OPENSSL_free(ui);
}
@@
-141,7
+146,7
@@
static UI_STRING *general_allocate_prompt(UI *ui, const char *prompt,
} else if ((type == UIT_PROMPT || type == UIT_VERIFY
|| type == UIT_BOOLEAN) && result_buf == NULL) {
UIerr(UI_F_GENERAL_ALLOCATE_PROMPT, UI_R_NO_RESULT_BUFFER);
} else if ((type == UIT_PROMPT || type == UIT_VERIFY
|| type == UIT_BOOLEAN) && result_buf == NULL) {
UIerr(UI_F_GENERAL_ALLOCATE_PROMPT, UI_R_NO_RESULT_BUFFER);
- } else if ((ret = OPENSSL_malloc(sizeof(*ret)))) {
+ } else if ((ret = OPENSSL_malloc(sizeof(*ret)))
!= NULL
) {
ret->out_string = prompt;
ret->flags = prompt_freeable ? OUT_STRING_FREEABLE : 0;
ret->input_flags = input_flags;
ret->out_string = prompt;
ret->flags = prompt_freeable ? OUT_STRING_FREEABLE : 0;
ret->input_flags = input_flags;
@@
-167,7
+172,7
@@
static int general_allocate_string(UI *ui, const char *prompt,
s->_.string_data.result_maxsize = maxsize;
s->_.string_data.test_buf = test_buf;
ret = sk_UI_STRING_push(ui->strings, s);
s->_.string_data.result_maxsize = maxsize;
s->_.string_data.test_buf = test_buf;
ret = sk_UI_STRING_push(ui->strings, s);
- /* sk_push() returns 0 on error. Let's ad
d
apt that */
+ /* sk_push() returns 0 on error. Let's adapt that */
if (ret <= 0)
ret--;
} else
if (ret <= 0)
ret--;
} else
@@
-211,7
+216,7
@@
static int general_allocate_boolean(UI *ui,
s->_.boolean_data.cancel_chars = cancel_chars;
ret = sk_UI_STRING_push(ui->strings, s);
/*
s->_.boolean_data.cancel_chars = cancel_chars;
ret = sk_UI_STRING_push(ui->strings, s);
/*
- * sk_push() returns 0 on error. Let's ad
d
apt that
+ * sk_push() returns 0 on error. Let's adapt that
*/
if (ret <= 0)
ret--;
*/
if (ret <= 0)
ret--;
@@
-241,7
+246,7
@@
int UI_dup_input_string(UI *ui, const char *prompt, int flags,
char *prompt_copy = NULL;
if (prompt) {
char *prompt_copy = NULL;
if (prompt) {
- prompt_copy =
BUF
_strdup(prompt);
+ prompt_copy =
OPENSSL
_strdup(prompt);
if (prompt_copy == NULL) {
UIerr(UI_F_UI_DUP_INPUT_STRING, ERR_R_MALLOC_FAILURE);
return 0;
if (prompt_copy == NULL) {
UIerr(UI_F_UI_DUP_INPUT_STRING, ERR_R_MALLOC_FAILURE);
return 0;
@@
-269,7
+274,7
@@
int UI_dup_verify_string(UI *ui, const char *prompt, int flags,
char *prompt_copy = NULL;
if (prompt) {
char *prompt_copy = NULL;
if (prompt) {
- prompt_copy =
BUF
_strdup(prompt);
+ prompt_copy =
OPENSSL
_strdup(prompt);
if (prompt_copy == NULL) {
UIerr(UI_F_UI_DUP_VERIFY_STRING, ERR_R_MALLOC_FAILURE);
return -1;
if (prompt_copy == NULL) {
UIerr(UI_F_UI_DUP_VERIFY_STRING, ERR_R_MALLOC_FAILURE);
return -1;
@@
-300,7
+305,7
@@
int UI_dup_input_boolean(UI *ui, const char *prompt, const char *action_desc,
char *cancel_chars_copy = NULL;
if (prompt) {
char *cancel_chars_copy = NULL;
if (prompt) {
- prompt_copy =
BUF
_strdup(prompt);
+ prompt_copy =
OPENSSL
_strdup(prompt);
if (prompt_copy == NULL) {
UIerr(UI_F_UI_DUP_INPUT_BOOLEAN, ERR_R_MALLOC_FAILURE);
goto err;
if (prompt_copy == NULL) {
UIerr(UI_F_UI_DUP_INPUT_BOOLEAN, ERR_R_MALLOC_FAILURE);
goto err;
@@
-308,7
+313,7
@@
int UI_dup_input_boolean(UI *ui, const char *prompt, const char *action_desc,
}
if (action_desc) {
}
if (action_desc) {
- action_desc_copy =
BUF
_strdup(action_desc);
+ action_desc_copy =
OPENSSL
_strdup(action_desc);
if (action_desc_copy == NULL) {
UIerr(UI_F_UI_DUP_INPUT_BOOLEAN, ERR_R_MALLOC_FAILURE);
goto err;
if (action_desc_copy == NULL) {
UIerr(UI_F_UI_DUP_INPUT_BOOLEAN, ERR_R_MALLOC_FAILURE);
goto err;
@@
-316,7
+321,7
@@
int UI_dup_input_boolean(UI *ui, const char *prompt, const char *action_desc,
}
if (ok_chars) {
}
if (ok_chars) {
- ok_chars_copy =
BUF
_strdup(ok_chars);
+ ok_chars_copy =
OPENSSL
_strdup(ok_chars);
if (ok_chars_copy == NULL) {
UIerr(UI_F_UI_DUP_INPUT_BOOLEAN, ERR_R_MALLOC_FAILURE);
goto err;
if (ok_chars_copy == NULL) {
UIerr(UI_F_UI_DUP_INPUT_BOOLEAN, ERR_R_MALLOC_FAILURE);
goto err;
@@
-324,7
+329,7
@@
int UI_dup_input_boolean(UI *ui, const char *prompt, const char *action_desc,
}
if (cancel_chars) {
}
if (cancel_chars) {
- cancel_chars_copy =
BUF
_strdup(cancel_chars);
+ cancel_chars_copy =
OPENSSL
_strdup(cancel_chars);
if (cancel_chars_copy == NULL) {
UIerr(UI_F_UI_DUP_INPUT_BOOLEAN, ERR_R_MALLOC_FAILURE);
goto err;
if (cancel_chars_copy == NULL) {
UIerr(UI_F_UI_DUP_INPUT_BOOLEAN, ERR_R_MALLOC_FAILURE);
goto err;
@@
-353,7
+358,7
@@
int UI_dup_info_string(UI *ui, const char *text)
char *text_copy = NULL;
if (text) {
char *text_copy = NULL;
if (text) {
- text_copy =
BUF
_strdup(text);
+ text_copy =
OPENSSL
_strdup(text);
if (text_copy == NULL) {
UIerr(UI_F_UI_DUP_INFO_STRING, ERR_R_MALLOC_FAILURE);
return -1;
if (text_copy == NULL) {
UIerr(UI_F_UI_DUP_INFO_STRING, ERR_R_MALLOC_FAILURE);
return -1;
@@
-375,7
+380,7
@@
int UI_dup_error_string(UI *ui, const char *text)
char *text_copy = NULL;
if (text) {
char *text_copy = NULL;
if (text) {
- text_copy =
BUF
_strdup(text);
+ text_copy =
OPENSSL
_strdup(text);
if (text_copy == NULL) {
UIerr(UI_F_UI_DUP_ERROR_STRING, ERR_R_MALLOC_FAILURE);
return -1;
if (text_copy == NULL) {
UIerr(UI_F_UI_DUP_ERROR_STRING, ERR_R_MALLOC_FAILURE);
return -1;
@@
-408,13
+413,13
@@
char *UI_construct_prompt(UI *ui, const char *object_desc,
prompt = OPENSSL_malloc(len + 1);
if (prompt == NULL)
return NULL;
prompt = OPENSSL_malloc(len + 1);
if (prompt == NULL)
return NULL;
-
BUF
_strlcpy(prompt, prompt1, len + 1);
-
BUF
_strlcat(prompt, object_desc, len + 1);
+
OPENSSL
_strlcpy(prompt, prompt1, len + 1);
+
OPENSSL
_strlcat(prompt, object_desc, len + 1);
if (object_name) {
if (object_name) {
-
BUF
_strlcat(prompt, prompt2, len + 1);
-
BUF
_strlcat(prompt, object_name, len + 1);
+
OPENSSL
_strlcat(prompt, prompt2, len + 1);
+
OPENSSL
_strlcat(prompt, object_name, len + 1);
}
}
-
BUF
_strlcat(prompt, prompt3, len + 1);
+
OPENSSL
_strlcat(prompt, prompt3, len + 1);
}
return prompt;
}
}
return prompt;
}
@@
-539,13
+544,6
@@
int UI_ctrl(UI *ui, int cmd, long i, void *p, void (*f) (void))
return -1;
}
return -1;
}
-int UI_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func,
- CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func)
-{
- return CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_UI, argl, argp,
- new_func, dup_func, free_func);
-}
-
int UI_set_ex_data(UI *r, int idx, void *arg)
{
return (CRYPTO_set_ex_data(&r->ex_data, idx, arg));
int UI_set_ex_data(UI *r, int idx, void *arg)
{
return (CRYPTO_set_ex_data(&r->ex_data, idx, arg));
@@
-582,12
+580,10
@@
const UI_METHOD *UI_set_method(UI *ui, const UI_METHOD *meth)
UI_METHOD *UI_create_method(char *name)
{
UI_METHOD *UI_create_method(char *name)
{
- UI_METHOD *ui_method = OPENSSL_
m
alloc(sizeof(*ui_method));
+ UI_METHOD *ui_method = OPENSSL_
z
alloc(sizeof(*ui_method));
- if (ui_method) {
- memset(ui_method, 0, sizeof(*ui_method));
- ui_method->name = BUF_strdup(name);
- }
+ if (ui_method != NULL)
+ ui_method->name = OPENSSL_strdup(name);
return ui_method;
}
return ui_method;
}
@@
-834,7
+830,7
@@
int UI_set_result(UI *ui, UI_STRING *uis, const char *result)
return -1;
}
return -1;
}
-
BUF
_strlcpy(uis->result_buf, result,
+
OPENSSL
_strlcpy(uis->result_buf, result,
uis->_.string_data.result_maxsize + 1);
break;
case UIT_BOOLEAN:
uis->_.string_data.result_maxsize + 1);
break;
case UIT_BOOLEAN: