Restore the ERR_FATAL_ERROR() macro
authorBenjamin Kaduk <bkaduk@akamai.com>
Thu, 8 Dec 2016 18:01:31 +0000 (12:01 -0600)
committerRich Salz <rsalz@openssl.org>
Mon, 12 Dec 2016 13:23:03 +0000 (08:23 -0500)
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 <levitte@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Rich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/2049)

doc/man3/ERR_GET_LIB.pod
include/openssl/err.h

index b93ebf608c4015ff630fc53c12528100948c6792..d809d7a54e7b7a6bb36633f6f47374ec0ccfb094 100644 (file)
@@ -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<ERR_R_...> reason codes such as B<ERR_R_MALLOC_FAILURE> 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
 
index f9390919ab52628b71fbc5ea186eba17eed6844e..904cf3a59e0c26e4fcf6bf69a3b6b4b8a8f15f2c 100644 (file)
@@ -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