X-Git-Url: https://git.openssl.org/gitweb/?p=openssl.git;a=blobdiff_plain;f=crypto%2Ferr%2Ferr.c;h=48eed688a6afb30343cfc3fde920c397aeabd7b1;hp=f108bc0b81a6868c515cd3124ce1870661f7e548;hb=d0fa136ce22bb57638a1bf18e656602f53081ff3;hpb=033d001e907f4ca7f9a3876e6b1033dec6d7cb1b diff --git a/crypto/err/err.c b/crypto/err/err.c index f108bc0b81..48eed688a6 100644 --- a/crypto/err/err.c +++ b/crypto/err/err.c @@ -123,12 +123,17 @@ static LHASH *error_hash=NULL; static LHASH *thread_hash=NULL; -static unsigned long err_hash(ERR_STRING_DATA *a); -static int err_cmp(ERR_STRING_DATA *a, ERR_STRING_DATA *b); -static unsigned long pid_hash(ERR_STATE *pid); -static int pid_cmp(ERR_STATE *a,ERR_STATE *pid); +/* static unsigned long err_hash(ERR_STRING_DATA *a); */ +static unsigned long err_hash(void *a_void); +/* static int err_cmp(ERR_STRING_DATA *a, ERR_STRING_DATA *b); */ +static int err_cmp(void *a_void, void *b_void); +/* static unsigned long pid_hash(ERR_STATE *pid); */ +static unsigned long pid_hash(void *pid_void); +/* static int pid_cmp(ERR_STATE *a,ERR_STATE *pid); */ +static int pid_cmp(void *a_void,void *pid_void); static unsigned long get_error_values(int inc,const char **file,int *line, const char **data,int *flags); + static void ERR_STATE_free(ERR_STATE *s); #ifndef NO_ERR static ERR_STRING_DATA ERR_str_libraries[]= @@ -157,6 +162,7 @@ static ERR_STRING_DATA ERR_str_libraries[]= {ERR_PACK(ERR_LIB_PKCS12,0,0) ,"PKCS12 routines"}, {ERR_PACK(ERR_LIB_RAND,0,0) ,"random number generator"}, {ERR_PACK(ERR_LIB_DSO,0,0) ,"DSO support routines"}, +{ERR_PACK(ERR_LIB_ENGINE,0,0) ,"engine routines"}, {0,NULL}, }; @@ -208,6 +214,7 @@ static ERR_STRING_DATA ERR_str_reasons[]= {ERR_R_ASN1_LENGTH_MISMATCH ,"asn1 length mismatch"}, {ERR_R_MISSING_ASN1_EOS ,"missing asn1 eos"}, {ERR_R_DSO_LIB ,"DSO lib"}, +{ERR_R_ENGINE_LIB ,"ENGINE lib"}, {0,NULL}, }; @@ -314,7 +321,7 @@ void ERR_load_strings(int lib, ERR_STRING_DATA *str) if (error_hash == NULL) { CRYPTO_w_lock(CRYPTO_LOCK_ERR_HASH); - error_hash=lh_new(err_hash,err_cmp); + error_hash=lh_new(err_hash, err_cmp); if (error_hash == NULL) { CRYPTO_w_unlock(CRYPTO_LOCK_ERR_HASH); @@ -535,7 +542,7 @@ char *ERR_error_string(unsigned long e, char *ret) static char buf[256]; if (ret == NULL) ret=buf; - ERR_error_string_n(e, buf, 256); + ERR_error_string_n(e, ret, 256); return(ret); } @@ -618,28 +625,34 @@ const char *ERR_reason_error_string(unsigned long e) return((p == NULL)?NULL:p->string); } -static unsigned long err_hash(ERR_STRING_DATA *a) +/* static unsigned long err_hash(ERR_STRING_DATA *a) */ +static unsigned long err_hash(void *a_void) { unsigned long ret,l; - l=a->error; + l=((ERR_STRING_DATA *)a_void)->error; ret=l^ERR_GET_LIB(l)^ERR_GET_FUNC(l); return(ret^ret%19*13); } -static int err_cmp(ERR_STRING_DATA *a, ERR_STRING_DATA *b) +/* static int err_cmp(ERR_STRING_DATA *a, ERR_STRING_DATA *b) */ +static int err_cmp(void *a_void, void *b_void) { - return((int)(a->error-b->error)); + return((int)(((ERR_STRING_DATA *)a_void)->error - + ((ERR_STRING_DATA *)b_void)->error)); } -static unsigned long pid_hash(ERR_STATE *a) +/* static unsigned long pid_hash(ERR_STATE *a) */ +static unsigned long pid_hash(void *a_void) { - return(a->pid*13); + return(((ERR_STATE *)a_void)->pid*13); } -static int pid_cmp(ERR_STATE *a, ERR_STATE *b) +/* static int pid_cmp(ERR_STATE *a, ERR_STATE *b) */ +static int pid_cmp(void *a_void, void *b_void) { - return((int)((long)a->pid - (long)b->pid)); + return((int)((long)((ERR_STATE *)a_void)->pid - + (long)((ERR_STATE *)b_void)->pid)); } void ERR_remove_state(unsigned long pid)