diff options
author | Dr. Stephen Henson <steve@openssl.org> | 2011-01-14 15:13:59 +0000 |
---|---|---|
committer | Dr. Stephen Henson <steve@openssl.org> | 2011-01-14 15:13:59 +0000 |
commit | c341b9cce50eb90ce02e639bd1e23c3c468aae5f (patch) | |
tree | 80b90610c08acbb0d92142b32961c23da7343338 /crypto/err | |
parent | bbbf0d45baefa633ad971fda360f5b21ffb6708e (diff) |
add va_list version of ERR_add_error_data
Diffstat (limited to 'crypto/err')
-rw-r--r-- | crypto/err/err.c | 13 | ||||
-rw-r--r-- | crypto/err/err.h | 3 |
2 files changed, 10 insertions, 6 deletions
diff --git a/crypto/err/err.c b/crypto/err/err.c index 69713a6e2f..fcdb244008 100644 --- a/crypto/err/err.c +++ b/crypto/err/err.c @@ -1066,6 +1066,13 @@ void ERR_set_error_data(char *data, int flags) void ERR_add_error_data(int num, ...) { va_list args; + va_start(args, num); + ERR_add_error_vdata(num, args); + va_end(args); + } + +void ERR_add_error_vdata(int num, va_list args) + { int i,n,s; char *str,*p,*a; @@ -1074,7 +1081,6 @@ void ERR_add_error_data(int num, ...) if (str == NULL) return; str[0]='\0'; - va_start(args, num); n=0; for (i=0; i<num; i++) { @@ -1090,7 +1096,7 @@ void ERR_add_error_data(int num, ...) if (p == NULL) { OPENSSL_free(str); - goto err; + return; } else str=p; @@ -1099,9 +1105,6 @@ void ERR_add_error_data(int num, ...) } } ERR_set_error_data(str,ERR_TXT_MALLOCED|ERR_TXT_STRING); - -err: - va_end(args); } int ERR_set_mark(void) diff --git a/crypto/err/err.h b/crypto/err/err.h index b9f8c16d47..974cc9cc6f 100644 --- a/crypto/err/err.h +++ b/crypto/err/err.h @@ -344,8 +344,9 @@ void ERR_print_errors_fp(FILE *fp); #endif #ifndef OPENSSL_NO_BIO void ERR_print_errors(BIO *bp); -void ERR_add_error_data(int num, ...); #endif +void ERR_add_error_data(int num, ...); +void ERR_add_error_vdata(int num, va_list args); void ERR_load_strings(int lib,ERR_STRING_DATA str[]); void ERR_unload_strings(int lib,ERR_STRING_DATA str[]); void ERR_load_ERR_strings(void); |