Skip to content

Commit

Permalink
fuzzing: beautified controller and h1p-peer
Browse files Browse the repository at this point in the history
Signed-off-by: Arjun <pkillarjun@protonmail.com>
  • Loading branch information
pkillarjun committed Jul 27, 2024
1 parent 51675fc commit 241355a
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 23 deletions.
36 changes: 23 additions & 13 deletions fuzzing/nxt_http_controller_fuzz.c
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ int
LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
{
nxt_mp_t *mp;
nxt_int_t rc;
nxt_buf_mem_t buf;
nxt_controller_request_t *r_controller;
nxt_http_request_parse_t rp;
Expand All @@ -51,27 +52,22 @@ LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
return 0;
}

mp = nxt_mp_create(1024, 128, 256, 32);
if (mp == NULL) {
return 0;
}

nxt_memzero(&rp, sizeof(nxt_http_request_parse_t));
if (nxt_http_parse_request_init(&rp, mp) != NXT_OK) {
goto failed;
}

buf.start = (u_char *)data;
buf.end = (u_char *)data + size;
buf.pos = buf.start;
buf.free = buf.end;

if (nxt_http_parse_request(&rp, &buf) != NXT_DONE) {
goto failed;

/*
* Create memory pool.
* Initialize 'nxt_controller_request_t'
*/
mp = nxt_mp_create(1024, 128, 256, 32);
if (mp == NULL) {
return 0;
}

r_controller = nxt_mp_zget(mp, sizeof(nxt_controller_request_t));

if (r_controller == NULL) {
goto failed;
}
Expand All @@ -84,6 +80,20 @@ LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
nxt_main_log.level = NXT_LOG_ALERT;
r_controller->conn->log = nxt_main_log;

/*
* Process request and fields.
*/
nxt_memzero(&rp, sizeof(nxt_http_request_parse_t));

if (nxt_http_parse_request_init(&rp, mp) != NXT_OK) {
goto failed;
}

rc = nxt_http_parse_request(&rp, &buf);
if (rc != NXT_DONE) {
goto failed;
}

nxt_http_fields_process(rp.fields, &nxt_controller_fields_hash,
r_controller);

Expand Down
31 changes: 21 additions & 10 deletions fuzzing/nxt_http_h1p_peer_fuzz.c
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ int
LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
{
nxt_mp_t *mp;
nxt_int_t rc;
nxt_buf_mem_t buf;
nxt_http_request_t *r_h1p_peer;
nxt_http_request_parse_t rp;
Expand All @@ -51,28 +52,38 @@ LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
return 0;
}

buf.start = (u_char *)data;
buf.end = (u_char *)data + size;
buf.pos = buf.start;
buf.free = buf.end;


/*
* Create memory pool.
* Initialize 'nxt_http_request_t'
*/
mp = nxt_mp_create(1024, 128, 256, 32);
if (mp == NULL) {
return 0;
}

nxt_memzero(&rp, sizeof(nxt_http_request_parse_t));
if (nxt_http_parse_request_init(&rp, mp) != NXT_OK) {
r_h1p_peer = nxt_mp_zget(mp, sizeof(nxt_http_request_t));
if (r_h1p_peer == NULL) {
goto failed;
}

buf.start = (u_char *)data;
buf.end = (u_char *)data + size;
buf.pos = buf.start;
buf.free = buf.end;

if (nxt_http_parse_request(&rp, &buf) != NXT_DONE) {
/*
* Process request and fields.
*/
nxt_memzero(&rp, sizeof(nxt_http_request_parse_t));

if (nxt_http_parse_request_init(&rp, mp) != NXT_OK) {
goto failed;
}

r_h1p_peer = nxt_mp_zget(mp, sizeof(nxt_http_request_t));

if (r_h1p_peer == NULL) {
rc = nxt_http_parse_request(&rp, &buf);
if (rc != NXT_DONE) {
goto failed;
}

Expand Down

0 comments on commit 241355a

Please sign in to comment.