diff options
Diffstat (limited to 'src/lib/libcrypto/err/err.c')
-rw-r--r-- | src/lib/libcrypto/err/err.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/lib/libcrypto/err/err.c b/src/lib/libcrypto/err/err.c index 69713a6e2f..fcdb244008 100644 --- a/src/lib/libcrypto/err/err.c +++ b/src/lib/libcrypto/err/err.c | |||
@@ -1066,6 +1066,13 @@ void ERR_set_error_data(char *data, int flags) | |||
1066 | void ERR_add_error_data(int num, ...) | 1066 | void ERR_add_error_data(int num, ...) |
1067 | { | 1067 | { |
1068 | va_list args; | 1068 | va_list args; |
1069 | va_start(args, num); | ||
1070 | ERR_add_error_vdata(num, args); | ||
1071 | va_end(args); | ||
1072 | } | ||
1073 | |||
1074 | void ERR_add_error_vdata(int num, va_list args) | ||
1075 | { | ||
1069 | int i,n,s; | 1076 | int i,n,s; |
1070 | char *str,*p,*a; | 1077 | char *str,*p,*a; |
1071 | 1078 | ||
@@ -1074,7 +1081,6 @@ void ERR_add_error_data(int num, ...) | |||
1074 | if (str == NULL) return; | 1081 | if (str == NULL) return; |
1075 | str[0]='\0'; | 1082 | str[0]='\0'; |
1076 | 1083 | ||
1077 | va_start(args, num); | ||
1078 | n=0; | 1084 | n=0; |
1079 | for (i=0; i<num; i++) | 1085 | for (i=0; i<num; i++) |
1080 | { | 1086 | { |
@@ -1090,7 +1096,7 @@ void ERR_add_error_data(int num, ...) | |||
1090 | if (p == NULL) | 1096 | if (p == NULL) |
1091 | { | 1097 | { |
1092 | OPENSSL_free(str); | 1098 | OPENSSL_free(str); |
1093 | goto err; | 1099 | return; |
1094 | } | 1100 | } |
1095 | else | 1101 | else |
1096 | str=p; | 1102 | str=p; |
@@ -1099,9 +1105,6 @@ void ERR_add_error_data(int num, ...) | |||
1099 | } | 1105 | } |
1100 | } | 1106 | } |
1101 | ERR_set_error_data(str,ERR_TXT_MALLOCED|ERR_TXT_STRING); | 1107 | ERR_set_error_data(str,ERR_TXT_MALLOCED|ERR_TXT_STRING); |
1102 | |||
1103 | err: | ||
1104 | va_end(args); | ||
1105 | } | 1108 | } |
1106 | 1109 | ||
1107 | int ERR_set_mark(void) | 1110 | int ERR_set_mark(void) |