From 036ba500f7886ca2e7231549fa574ec2cdd45cef Mon Sep 17 00:00:00 2001 From: Benjamin Kaduk Date: Thu, 8 Dec 2016 12:01:31 -0600 Subject: [PATCH] Restore the ERR_FATAL_ERROR() macro Commit 0cd0a820abc6124cf8e176fa92d620a2abf9e419 removed this macro along with many unused function and reason codes; ERR_FATAL_ERROR() was not used in the tree, but did have external consumers. Add it back to restore the API compatibility and avoid breaking applications for no internal benefit. Reviewed-by: Richard Levitte Reviewed-by: Matt Caswell Reviewed-by: Rich Salz (Merged from https://github.com/openssl/openssl/pull/2049) --- doc/man3/ERR_GET_LIB.pod | 10 ++++++++-- include/openssl/err.h | 1 + 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/doc/man3/ERR_GET_LIB.pod b/doc/man3/ERR_GET_LIB.pod index b93ebf608c..d809d7a54e 100644 --- a/doc/man3/ERR_GET_LIB.pod +++ b/doc/man3/ERR_GET_LIB.pod @@ -15,12 +15,16 @@ reason code int ERR_GET_REASON(unsigned long e); + int ERR_FATAL_ERROR(unsigned long e); + =head1 DESCRIPTION The error code returned by ERR_get_error() consists of a library number, function code and reason code. ERR_GET_LIB(), ERR_GET_FUNC() and ERR_GET_REASON() can be used to extract these. +ERR_FATAL_ERROR() indicates whether a given error code is a fatal error. + The library number and function code describe where the error occurred, the reason code is the information about what went wrong. @@ -33,11 +37,13 @@ B reason codes such as B are globally unique. However, when checking for sub-library specific reason codes, be sure to also compare the library number. -ERR_GET_LIB(), ERR_GET_FUNC() and ERR_GET_REASON() are macros. +ERR_GET_LIB(), ERR_GET_FUNC(), ERR_GET_REASON(), and ERR_FATAL_ERROR() + are macros. =head1 RETURN VALUES -The library number, function code and reason code respectively. +The library number, function code, reason code, and whether the error +is fatal, respectively. =head1 SEE ALSO diff --git a/include/openssl/err.h b/include/openssl/err.h index f9390919ab..904cf3a59e 100644 --- a/include/openssl/err.h +++ b/include/openssl/err.h @@ -140,6 +140,7 @@ typedef struct err_state_st { # define ERR_GET_LIB(l) (int)(((l) >> 24L) & 0x0FFL) # define ERR_GET_FUNC(l) (int)(((l) >> 12L) & 0xFFFL) # define ERR_GET_REASON(l) (int)( (l) & 0xFFFL) +# define ERR_FATAL_ERROR(l) (int)( (l) & ERR_R_FATAL) /* OS functions */ # define SYS_F_FOPEN 1 -- 2.25.1