File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -1035,21 +1035,28 @@ nc_tls_get_err_reasons(void)
10351035 unsigned int e ;
10361036 int reason_size , reason_len ;
10371037 char * reasons = NULL ;
1038+ const char * err_reason ;
10381039
10391040 reason_size = 1 ;
10401041 reason_len = 0 ;
10411042 while ((e = ERR_get_error ())) {
1043+ err_reason = ERR_reason_error_string (e );
1044+ if (!err_reason ) {
1045+ /* couldn't map value to anything from https://datatracker.ietf.org/doc/html/rfc8446#appendix-B.2 */
1046+ DBG (NULL , "Unknown OpenSSL error (err code %u)." , e );
1047+ err_reason = "unknown AlertDescription value" ;
1048+ }
10421049 if (reason_len ) {
10431050 /* add "; " */
10441051 reason_size += 2 ;
10451052 reasons = nc_realloc (reasons , reason_size );
10461053 NC_CHECK_ERRMEM_RET (!reasons , NULL );
10471054 reason_len += sprintf (reasons + reason_len , "; " );
10481055 }
1049- reason_size += strlen (ERR_reason_error_string ( e ) );
1056+ reason_size += strlen (err_reason );
10501057 reasons = nc_realloc (reasons , reason_size );
10511058 NC_CHECK_ERRMEM_RET (!reasons , NULL );
1052- reason_len += sprintf (reasons + reason_len , "%s" , ERR_reason_error_string ( e ) );
1059+ reason_len += sprintf (reasons + reason_len , "%s" , err_reason );
10531060 }
10541061
10551062 return reasons ;
You can’t perform that action at this time.
0 commit comments