]> git.ipfire.org Git - thirdparty/gnutls.git/commitdiff
_gnutls_asn2err: define as static inline
authorDaiki Ueno <ueno@gnu.org>
Sun, 18 Oct 2020 07:50:46 +0000 (09:50 +0200)
committerDaiki Ueno <ueno@gnu.org>
Sun, 18 Oct 2020 17:18:11 +0000 (19:18 +0200)
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>
lib/errors.c
lib/errors.h

index 842afe0e246d5295a1cb9a28573cabe5c6102e79..4e59d63eb235fe1b7f1d123079c00cd39973791b 100644 (file)
@@ -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;
index 976a788e7c61e8128db60068f467fe37c6a808d2..30ed744a49698d0a1af595fa4f89f14461901445 100644 (file)
 #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__