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) |
