Merge branch 'mbedtls-1.3' into mbedtls-1.3-restricted
* mbedtls-1.3:
Fix spurious #endif from previous cherry-pick
Fix macroization of inline in C++
Add missing warning in doc
Fix compile error in net.c with musl libc
diff --git a/ChangeLog b/ChangeLog
index d8d6798..284cd48 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -29,6 +29,11 @@
unless you allow third parties to pick trust CAs for client auth. Found by
Guido Vranken, Intelworks.
+Bugfix
+ * Fix compile error in net.c with musl libc. Found and patch provided by
+ zhasha (#278).
+ * Fix macroization of 'inline' keywork when building as C++. (#279)
+
Changes
* Added checking of hostname length in ssl_set_hostname() to ensure domain
names are compliant with RFC 1035.
diff --git a/include/polarssl/cipher.h b/include/polarssl/cipher.h
index 00c42c1..bde1d47 100644
--- a/include/polarssl/cipher.h
+++ b/include/polarssl/cipher.h
@@ -47,13 +47,10 @@
#define POLARSSL_CIPHER_MODE_STREAM
#endif
-#if defined(_MSC_VER) && !defined(inline)
-#define inline _inline
-#else
-#if defined(__ARMCC_VERSION) && !defined(inline)
+#if ( defined(__ARMCC_VERSION) || defined(_MSC_VER) ) && \
+ !defined(inline) && !defined(__cplusplus)
#define inline __inline
-#endif /* __ARMCC_VERSION */
-#endif /*_MSC_VER */
+#endif
#define POLARSSL_ERR_CIPHER_FEATURE_UNAVAILABLE -0x6080 /**< The selected feature is not available. */
#define POLARSSL_ERR_CIPHER_BAD_INPUT_DATA -0x6100 /**< Bad input parameters to function. */
diff --git a/include/polarssl/compat-1.2.h b/include/polarssl/compat-1.2.h
index d694015..37df541 100644
--- a/include/polarssl/compat-1.2.h
+++ b/include/polarssl/compat-1.2.h
@@ -41,13 +41,10 @@
// Comment out to disable prototype change warnings
#define SHOW_PROTOTYPE_CHANGE_WARNINGS
-#if defined(_MSC_VER) && !defined(inline)
-#define inline _inline
-#else
-#if defined(__ARMCC_VERSION) && !defined(inline)
+#if ( defined(__ARMCC_VERSION) || defined(_MSC_VER) ) && \
+ !defined(inline) && !defined(__cplusplus)
#define inline __inline
-#endif /* __ARMCC_VERSION */
-#endif /* _MSC_VER */
+#endif
#if defined(_MSC_VER)
// MSVC does not support #warning
diff --git a/include/polarssl/config.h b/include/polarssl/config.h
index 422c8be..21aa9fa 100644
--- a/include/polarssl/config.h
+++ b/include/polarssl/config.h
@@ -1157,6 +1157,8 @@
* If set, the X509 parser will not break-off when parsing an X509 certificate
* and encountering an unknown critical extension.
*
+ * \warning Depending on your PKI use, enabling this can be a security risk!
+ *
* Uncomment to prevent an error.
*/
//#define POLARSSL_X509_ALLOW_UNSUPPORTED_CRITICAL_EXTENSION
diff --git a/include/polarssl/md.h b/include/polarssl/md.h
index 303aee8..fc7482a 100644
--- a/include/polarssl/md.h
+++ b/include/polarssl/md.h
@@ -28,13 +28,10 @@
#include <stddef.h>
-#if defined(_MSC_VER) && !defined(inline)
-#define inline _inline
-#else
-#if defined(__ARMCC_VERSION) && !defined(inline)
+#if ( defined(__ARMCC_VERSION) || defined(_MSC_VER) ) && \
+ !defined(inline) && !defined(__cplusplus)
#define inline __inline
-#endif /* __ARMCC_VERSION */
-#endif /*_MSC_VER */
+#endif
#define POLARSSL_ERR_MD_FEATURE_UNAVAILABLE -0x5080 /**< The selected feature is not available. */
#define POLARSSL_ERR_MD_BAD_INPUT_DATA -0x5100 /**< Bad input parameters to function. */
diff --git a/include/polarssl/pkcs11.h b/include/polarssl/pkcs11.h
index 18c3370..4ca4a4c 100644
--- a/include/polarssl/pkcs11.h
+++ b/include/polarssl/pkcs11.h
@@ -38,13 +38,10 @@
#include <pkcs11-helper-1.0/pkcs11h-certificate.h>
-#if defined(_MSC_VER) && !defined(inline)
-#define inline _inline
-#else
-#if defined(__ARMCC_VERSION) && !defined(inline)
+#if ( defined(__ARMCC_VERSION) || defined(_MSC_VER) ) && \
+ !defined(inline) && !defined(__cplusplus)
#define inline __inline
-#endif /* __ARMCC_VERSION */
-#endif /*_MSC_VER */
+#endif
#ifdef __cplusplus
extern "C" {
diff --git a/include/polarssl/ssl.h b/include/polarssl/ssl.h
index 0d84663..c7cd541 100644
--- a/include/polarssl/ssl.h
+++ b/include/polarssl/ssl.h
@@ -97,13 +97,10 @@
#define POLARSSL_KEY_EXCHANGE__SOME__ECDHE_ENABLED
#endif
-#if defined(_MSC_VER) && !defined(inline)
-#define inline _inline
-#else
-#if defined(__ARMCC_VERSION) && !defined(inline)
+#if ( defined(__ARMCC_VERSION) || defined(_MSC_VER) ) && \
+ !defined(inline) && !defined(__cplusplus)
#define inline __inline
-#endif /* __ARMCC_VERSION */
-#endif /*_MSC_VER */
+#endif
/*
* SSL Error codes
diff --git a/library/ecp.c b/library/ecp.c
index adef09e..796452b 100644
--- a/library/ecp.c
+++ b/library/ecp.c
@@ -68,13 +68,10 @@
#define strcasecmp _stricmp
#endif
-#if defined(_MSC_VER) && !defined(inline)
-#define inline _inline
-#else
-#if defined(__ARMCC_VERSION) && !defined(inline)
+#if ( defined(__ARMCC_VERSION) || defined(_MSC_VER) ) && \
+ !defined(inline) && !defined(__cplusplus)
#define inline __inline
-#endif /* __ARMCC_VERSION */
-#endif /*_MSC_VER */
+#endif
/* Implementation that should never be optimized out by the compiler */
static void polarssl_zeroize( void *v, size_t n ) {
diff --git a/library/ecp_curves.c b/library/ecp_curves.c
index 3786356..f5afe44 100644
--- a/library/ecp_curves.c
+++ b/library/ecp_curves.c
@@ -32,13 +32,10 @@
#include <string.h>
-#if defined(_MSC_VER) && !defined(inline)
-#define inline _inline
-#else
-#if defined(__ARMCC_VERSION) && !defined(inline)
+#if ( defined(__ARMCC_VERSION) || defined(_MSC_VER) ) && \
+ !defined(inline) && !defined(__cplusplus)
#define inline __inline
-#endif /* __ARMCC_VERSION */
-#endif /*_MSC_VER */
+#endif
/*
* Conversion macros for embedded constants:
diff --git a/library/net.c b/library/net.c
index 1fb6884..dcbe480 100644
--- a/library/net.c
+++ b/library/net.c
@@ -428,7 +428,7 @@
#endif
#if defined(__socklen_t_defined) || defined(_SOCKLEN_T) || \
- defined(_SOCKLEN_T_DECLARED)
+ defined(_SOCKLEN_T_DECLARED) || defined(__DEFINED_socklen_t)
socklen_t n = (socklen_t) sizeof( client_addr );
#else
int n = (int) sizeof( client_addr );