mirror of
https://github.com/json-c/json-c.git
synced 2026-03-23 23:19:06 +08:00
@@ -4,7 +4,7 @@
|
||||
|
||||
#include "json_config.h"
|
||||
|
||||
#if defined(_MSC_VER) && _MSC_VER < 1700
|
||||
#if defined(_MSC_VER) && _MSC_VER =< 1700
|
||||
|
||||
/* Anything less than Visual Studio C++ 10 is missing stdint.h and inttypes.h */
|
||||
typedef __int32 int32_t;
|
||||
|
||||
@@ -37,6 +37,13 @@
|
||||
char* strndup(const char* str, size_t n);
|
||||
#endif /* !HAVE_STRNDUP */
|
||||
|
||||
#if !defined(HAVE_SNPRINTF) && defined(_MSC_VER)
|
||||
/* MSC has the version as _snprintf */
|
||||
# define snprintf _snprintf
|
||||
#elif !defined(HAVE_SNPRINTF)
|
||||
# error You do not have snprintf on your system.
|
||||
#endif /* HAVE_SNPRINTF */
|
||||
|
||||
// Don't define this. It's not thread-safe.
|
||||
/* #define REFCOUNT_DEBUG 1 */
|
||||
|
||||
|
||||
@@ -159,14 +159,15 @@ int json_parse_double(const char *buf, double *retval)
|
||||
static void sscanf_is_broken_test()
|
||||
{
|
||||
int64_t num64;
|
||||
int ret_errno, is_int64_min, ret_errno2, is_int64_max;
|
||||
|
||||
(void)sscanf(" -01234567890123456789012345", "%" SCNd64, &num64);
|
||||
int ret_errno = errno;
|
||||
int is_int64_min = (num64 == INT64_MIN);
|
||||
ret_errno = errno;
|
||||
is_int64_min = (num64 == INT64_MIN);
|
||||
|
||||
(void)sscanf(" 01234567890123456789012345", "%" SCNd64, &num64);
|
||||
int ret_errno2 = errno;
|
||||
int is_int64_max = (num64 == INT64_MAX);
|
||||
ret_errno2 = errno;
|
||||
is_int64_max = (num64 == INT64_MAX);
|
||||
|
||||
if (ret_errno != ERANGE || !is_int64_min ||
|
||||
ret_errno2 != ERANGE || !is_int64_max)
|
||||
|
||||
Reference in New Issue
Block a user