summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Hawicz <erh+git@nimenees.com>2021-11-11 23:52:43 -0500
committerGitHub <noreply@github.com>2021-11-11 23:52:43 -0500
commit42aa6f7257a42468a432078e05c946dd52274dd3 (patch)
tree1eca2c66561b4c4d7feab5e07c606acc512c4d1f
parent9b0fb2b33e141dc7148d3376f061f64eaa9e2978 (diff)
parent286b4fdd2787e4e43b6912438362b4593e28f243 (diff)
downloadjson-c-42aa6f7257a42468a432078e05c946dd52274dd3.tar.gz
Merge pull request #732 from DiracResearch/fix/static_include_dirs
Fix/static include dirs
-rw-r--r--CMakeLists.txt5
-rw-r--r--json_object.c10
-rw-r--r--linkhash.c2
-rw-r--r--random_seed.c6
4 files changed, 14 insertions, 9 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 23c6eef..29a8bd3 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -472,6 +472,11 @@ if (BUILD_STATIC_LIBS AND BUILD_SHARED_LIBS)
${JSON_C_SOURCES}
${JSON_C_HEADERS}
)
+ target_include_directories(${PROJECT_NAME}-static
+ PUBLIC
+ $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}>
+ $<BUILD_INTERFACE:${PROJECT_BINARY_DIR}>
+ )
# rename the static library
if (NOT MSVC)
diff --git a/json_object.c b/json_object.c
index bf302e5..370e1d1 100644
--- a/json_object.c
+++ b/json_object.c
@@ -1058,8 +1058,7 @@ static int json_object_double_to_json_string_format(struct json_object *jso, str
format_drops_decimals = 1;
looks_numeric = /* Looks like *some* kind of number */
- is_plain_digit(buf[0]) ||
- (size > 1 && buf[0] == '-' && is_plain_digit(buf[1]));
+ is_plain_digit(buf[0]) || (size > 1 && buf[0] == '-' && is_plain_digit(buf[1]));
if (size < (int)sizeof(buf) - 2 && looks_numeric && !p && /* Has no decimal point */
strchr(buf, 'e') == NULL && /* Not scientific notation */
@@ -1283,7 +1282,8 @@ static struct json_object *_json_object_new_string(const char *s, const size_t l
return NULL;
jso->len = len;
memcpy(jso->c_string.idata, s, len);
- jso->c_string.idata[len] = '\0';
+ // Cast below needed for Clang UB sanitizer
+ ((char *)jso->c_string.idata)[len] = '\0';
return &jso->base;
}
@@ -1733,8 +1733,8 @@ static int json_object_deep_copy_recursive(struct json_object *src, struct json_
/* This handles the `json_type_null` case */
if (!iter.val)
jso = NULL;
- else if (json_object_deep_copy_recursive(iter.val, src, iter.key, UINT_MAX, &jso,
- shallow_copy) < 0)
+ else if (json_object_deep_copy_recursive(iter.val, src, iter.key, UINT_MAX,
+ &jso, shallow_copy) < 0)
{
json_object_put(jso);
return -1;
diff --git a/linkhash.c b/linkhash.c
index ec0b995..d2f2b1b 100644
--- a/linkhash.c
+++ b/linkhash.c
@@ -486,7 +486,7 @@ static unsigned long lh_char_hash(const void *k)
#endif
}
- return hashlittle((const char *)k, strlen((const char *)k), random_seed);
+ return hashlittle((const char *)k, strlen((const char *)k), (uint32_t)random_seed);
}
int lh_char_equal(const void *k1, const void *k2)
diff --git a/random_seed.c b/random_seed.c
index f474e39..4622979 100644
--- a/random_seed.c
+++ b/random_seed.c
@@ -329,21 +329,21 @@ int json_c_get_random_seed(void)
#else
#ifdef HAVE_GETRANDOM
{
- int seed;
+ int seed = 0;
if (get_getrandom_seed(&seed) == 0)
return seed;
}
#endif
#if defined HAVE_DEV_RANDOM && HAVE_DEV_RANDOM
{
- int seed;
+ int seed = 0;
if (get_dev_random_seed(&seed) == 0)
return seed;
}
#endif
#if defined HAVE_CRYPTGENRANDOM && HAVE_CRYPTGENRANDOM
{
- int seed;
+ int seed = 0;
if (get_cryptgenrandom_seed(&seed) == 0)
return seed;
}