json: add an assert_cc() check that validates _JSON_VARIANT_MAGIC_MAX

This commit is contained in:
Lennart Poettering 2018-10-12 16:53:04 +02:00
parent 7e61bd0f67
commit 085f3d6416

View file

@ -37,6 +37,11 @@ assert_cc(sizeof(JsonValue) == 16U);
#define JSON_VARIANT_MAGIC_EMPTY_OBJECT ((JsonVariant*) 9)
#define _JSON_VARIANT_MAGIC_MAX ((JsonVariant*) 10)
/* This is only safe as long as we don't define more than 4K magic pointers, i.e. the page size of the simplest
* architectures we support. That's because we rely on the fact that malloc() will never allocate from the first memory
* page, as it is a faulting page for catching NULL pointer dereferences. */
assert_cc((uintptr_t) _JSON_VARIANT_MAGIC_MAX < 4096U);
enum { /* JSON tokens */
JSON_TOKEN_END,
JSON_TOKEN_COLON,