diff --git a/src/sbbs3/ssl.c b/src/sbbs3/ssl.c index 5777bb66c87d2caf0761b58fa0e30e3939a369a2..0fc5d03457477ce59a585c6f4b45c422229bfb87 100644 --- a/src/sbbs3/ssl.c +++ b/src/sbbs3/ssl.c @@ -40,10 +40,11 @@ static bool get_error_string(int status, CRYPT_SESSION sess, char *estr, char *f if (cryptStatusOK(status)) return true; - ret = cryptGetAttributeString(sess, CRYPT_ATTRIBUTE_ERRORMESSAGE, tmpstr, &len); - tmpstr[len]=0; - if (cryptStatusOK(ret) && len) + estr = get_crypt_error(sess); + if (estr) { sprintf(estr, "cryptlib error %d at %s:%d (%s)", status, file, line, tmpstr); + free_crypt_attrstr(estr); + } else sprintf(estr, "cryptlib error %d at %s:%d", status, file, line); return false;