summaryrefslogtreecommitdiffhomepage
path: root/fuzzing/nxt_json_fuzz.c
diff options
context:
space:
mode:
Diffstat (limited to 'fuzzing/nxt_json_fuzz.c')
-rw-r--r--fuzzing/nxt_json_fuzz.c19
1 files changed, 18 insertions, 1 deletions
diff --git a/fuzzing/nxt_json_fuzz.c b/fuzzing/nxt_json_fuzz.c
index 532babb1..cfeb395d 100644
--- a/fuzzing/nxt_json_fuzz.c
+++ b/fuzzing/nxt_json_fuzz.c
@@ -4,7 +4,7 @@
#include <nxt_main.h>
#include <nxt_conf.h>
-
+#include <nxt_router.h>
#define KMININPUTLENGTH 2
#define KMAXINPUTLENGTH 1024
@@ -33,6 +33,8 @@ LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
{
nxt_mp_t *mp;
nxt_str_t input;
+ nxt_thread_t *thr;
+ nxt_runtime_t *rt;
nxt_conf_value_t *conf;
nxt_conf_validation_t vldt;
@@ -40,11 +42,21 @@ LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
return 0;
}
+ thr = nxt_thread();
+
mp = nxt_mp_create(1024, 128, 256, 32);
if (mp == NULL) {
return 0;
}
+ rt = nxt_mp_zget(mp, sizeof(nxt_runtime_t));
+ if (rt == NULL) {
+ goto failed;
+ }
+
+ thr->runtime = rt;
+ rt->mem_pool = mp;
+
input.start = (u_char *)data;
input.length = size;
@@ -64,6 +76,11 @@ LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
vldt.conf_pool = mp;
vldt.ver = NXT_VERNUM;
+ rt->languages = nxt_array_create(mp, 1, sizeof(nxt_app_lang_module_t));
+ if (rt->languages == NULL) {
+ goto failed;
+ }
+
nxt_conf_validate(&vldt);
nxt_mp_destroy(vldt.pool);