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
|
||||
#if defined(NO_FILESYSTEM) && (defined(OPENSSL_EXTRA) || \
|
||||
defined(HAVE_PKCS7)) && !defined(NO_STDIO_FILESYSTEM)
|
||||
/* case where stdio is not included else where but is needed for
|
||||
* snprintf */
|
||||
/* case where stdio is not included else where but is needed
|
||||
for snprintf */
|
||||
#include <stdio.h>
|
||||
#endif
|
||||
#define XSNPRINTF snprintf
|
||||
#else
|
||||
#define XSNPRINTF _snprintf
|
||||
#endif
|
||||
#ifdef _MSC_VER
|
||||
#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)
|
||||
/* use only Thread Safe version of strtok */
|
||||
|
Reference in New Issue
Block a user