forked from wolfSSL/wolfssl
Merge pull request #2144 from embhorn/zd4871
Use snprintf with Win build
This commit is contained in:
@@ -398,14 +398,41 @@
|
|||||||
#ifndef USE_WINDOWS_API
|
#ifndef USE_WINDOWS_API
|
||||||
#if defined(NO_FILESYSTEM) && (defined(OPENSSL_EXTRA) || \
|
#if defined(NO_FILESYSTEM) && (defined(OPENSSL_EXTRA) || \
|
||||||
defined(HAVE_PKCS7)) && !defined(NO_STDIO_FILESYSTEM)
|
defined(HAVE_PKCS7)) && !defined(NO_STDIO_FILESYSTEM)
|
||||||
/* case where stdio is not included else where but is needed for
|
/* case where stdio is not included else where but is needed
|
||||||
* snprintf */
|
for snprintf */
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#endif
|
#endif
|
||||||
#define XSNPRINTF snprintf
|
#define XSNPRINTF snprintf
|
||||||
#else
|
#else
|
||||||
#define XSNPRINTF _snprintf
|
#ifdef _MSC_VER
|
||||||
#endif
|
#if (_MSC_VER >= 1900)
|
||||||
|
/* Beginning with the UCRT in Visual Studio 2015 and
|
||||||
|
Windows 10, snprintf is no longer identical to
|
||||||
|
_snprintf. The snprintf function behavior is now
|
||||||
|
C99 standard compliant. */
|
||||||
|
#define XSNPRINTF snprintf
|
||||||
|
#else
|
||||||
|
/* 4996 warning to use MS extensions e.g., _sprintf_s
|
||||||
|
instead of _snprintf */
|
||||||
|
#pragma warning(disable: 4996)
|
||||||
|
static WC_INLINE
|
||||||
|
int xsnprintf(char *buffer, size_t bufsize,
|
||||||
|
const char *format, ...) {
|
||||||
|
va_list ap;
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
if ((int)bufsize <= 0) return -1;
|
||||||
|
va_start(ap, format);
|
||||||
|
ret = vsnprintf(buffer, bufsize, format, ap);
|
||||||
|
if (ret >= (int)bufsize)
|
||||||
|
ret = -1;
|
||||||
|
va_end(ap);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
#define XSNPRINTF xsnprintf
|
||||||
|
#endif /* (_MSC_VER >= 1900) */
|
||||||
|
#endif /* _MSC_VER */
|
||||||
|
#endif /* USE_WINDOWS_API */
|
||||||
|
|
||||||
#if defined(WOLFSSL_CERT_EXT) || defined(HAVE_ALPN)
|
#if defined(WOLFSSL_CERT_EXT) || defined(HAVE_ALPN)
|
||||||
/* use only Thread Safe version of strtok */
|
/* use only Thread Safe version of strtok */
|
||||||
|
Reference in New Issue
Block a user