summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaiki Ueno <ueno@gnu.org>2020-10-18 09:50:46 +0200
committerDaiki Ueno <ueno@gnu.org>2020-10-18 19:18:11 +0200
commitc4300904e80fb8f603938ebcc00b1a161df42726 (patch)
tree13d328ab8211c86fa43d8d763a3ed814e2123cb8
parent2b69d09b9f21cddc1674d417282389234f0a5a65 (diff)
downloadgnutls-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.c41
-rw-r--r--lib/errors.h42
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__