diff options
author | Daiki Ueno <ueno@gnu.org> | 2020-10-18 09:50:46 +0200 |
---|---|---|
committer | Daiki Ueno <ueno@gnu.org> | 2020-10-18 19:18:11 +0200 |
commit | c4300904e80fb8f603938ebcc00b1a161df42726 (patch) | |
tree | 13d328ab8211c86fa43d8d763a3ed814e2123cb8 | |
parent | 2b69d09b9f21cddc1674d417282389234f0a5a65 (diff) | |
download | gnutls-c4300904e80fb8f603938ebcc00b1a161df42726.tar.gz |
_gnutls_asn2err: define as static inline
This pacifies -fanalyzer false-positive:
common.c:552:3: warning: use of NULL '<unknown>' where non-null expected [CWE-690] [-Wanalyzer-null-argument]
Ideally, the function should be defined as 'extern inline' to avoid
code bloat by being copied across multiple translation units.
Signed-off-by: Daiki Ueno <ueno@gnu.org>
-rw-r--r-- | lib/errors.c | 41 | ||||
-rw-r--r-- | lib/errors.h | 42 |
2 files changed, 41 insertions, 42 deletions
diff --git a/lib/errors.c b/lib/errors.c index 842afe0e24..4e59d63eb2 100644 --- a/lib/errors.c +++ b/lib/errors.c @@ -22,7 +22,6 @@ #include "gnutls_int.h" #include "errors.h" -#include <libtasn1.h> #ifdef STDC_HEADERS #include <stdarg.h> #endif @@ -590,46 +589,6 @@ const char *gnutls_strerror_name(int error) return ret; } -int _gnutls_asn2err(int asn_err) -{ - switch (asn_err) { -#ifdef ASN1_TIME_ENCODING_ERROR - case ASN1_TIME_ENCODING_ERROR: - return GNUTLS_E_ASN1_TIME_ERROR; -#endif - case ASN1_FILE_NOT_FOUND: - return GNUTLS_E_FILE_ERROR; - case ASN1_ELEMENT_NOT_FOUND: - return GNUTLS_E_ASN1_ELEMENT_NOT_FOUND; - case ASN1_IDENTIFIER_NOT_FOUND: - return GNUTLS_E_ASN1_IDENTIFIER_NOT_FOUND; - case ASN1_DER_ERROR: - return GNUTLS_E_ASN1_DER_ERROR; - case ASN1_VALUE_NOT_FOUND: - return GNUTLS_E_ASN1_VALUE_NOT_FOUND; - case ASN1_GENERIC_ERROR: - return GNUTLS_E_ASN1_GENERIC_ERROR; - case ASN1_VALUE_NOT_VALID: - return GNUTLS_E_ASN1_VALUE_NOT_VALID; - case ASN1_TAG_ERROR: - return GNUTLS_E_ASN1_TAG_ERROR; - case ASN1_TAG_IMPLICIT: - return GNUTLS_E_ASN1_TAG_IMPLICIT; - case ASN1_ERROR_TYPE_ANY: - return GNUTLS_E_ASN1_TYPE_ANY_ERROR; - case ASN1_SYNTAX_ERROR: - return GNUTLS_E_ASN1_SYNTAX_ERROR; - case ASN1_MEM_ERROR: - return GNUTLS_E_SHORT_MEMORY_BUFFER; - case ASN1_MEM_ALLOC_ERROR: - return GNUTLS_E_MEMORY_ERROR; - case ASN1_DER_OVERFLOW: - return GNUTLS_E_ASN1_DER_OVERFLOW; - default: - return GNUTLS_E_ASN1_GENERIC_ERROR; - } -} - void _gnutls_mpi_log(const char *prefix, bigint_t a) { size_t binlen = 0; diff --git a/lib/errors.h b/lib/errors.h index 976a788e7c..30ed744a49 100644 --- a/lib/errors.h +++ b/lib/errors.h @@ -38,7 +38,47 @@ #define gnutls_assert() #endif -int _gnutls_asn2err(int asn_err) __GNUTLS_CONST__; +inline static int _gnutls_asn2err(int asn_err) __GNUTLS_CONST__; + +inline static int _gnutls_asn2err(int asn_err) +{ + switch (asn_err) { +#ifdef ASN1_TIME_ENCODING_ERROR + case ASN1_TIME_ENCODING_ERROR: + return GNUTLS_E_ASN1_TIME_ERROR; +#endif + case ASN1_FILE_NOT_FOUND: + return GNUTLS_E_FILE_ERROR; + case ASN1_ELEMENT_NOT_FOUND: + return GNUTLS_E_ASN1_ELEMENT_NOT_FOUND; + case ASN1_IDENTIFIER_NOT_FOUND: + return GNUTLS_E_ASN1_IDENTIFIER_NOT_FOUND; + case ASN1_DER_ERROR: + return GNUTLS_E_ASN1_DER_ERROR; + case ASN1_VALUE_NOT_FOUND: + return GNUTLS_E_ASN1_VALUE_NOT_FOUND; + case ASN1_GENERIC_ERROR: + return GNUTLS_E_ASN1_GENERIC_ERROR; + case ASN1_VALUE_NOT_VALID: + return GNUTLS_E_ASN1_VALUE_NOT_VALID; + case ASN1_TAG_ERROR: + return GNUTLS_E_ASN1_TAG_ERROR; + case ASN1_TAG_IMPLICIT: + return GNUTLS_E_ASN1_TAG_IMPLICIT; + case ASN1_ERROR_TYPE_ANY: + return GNUTLS_E_ASN1_TYPE_ANY_ERROR; + case ASN1_SYNTAX_ERROR: + return GNUTLS_E_ASN1_SYNTAX_ERROR; + case ASN1_MEM_ERROR: + return GNUTLS_E_SHORT_MEMORY_BUFFER; + case ASN1_MEM_ALLOC_ERROR: + return GNUTLS_E_MEMORY_ERROR; + case ASN1_DER_OVERFLOW: + return GNUTLS_E_ASN1_DER_OVERFLOW; + default: + return GNUTLS_E_ASN1_GENERIC_ERROR; + } +} void _gnutls_log(int, const char *fmt, ...) #ifdef __GNUC__ |