Giter Club home page Giter Club logo

http-garden's People

Contributors

eltociear avatar kenballus avatar lpereira avatar pajod avatar prashantbarca avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

http-garden's Issues

Get rid of signal() hack for control flow collection

Right now, control flow is collected by sending signals to afl-showmap. This is not only a hack, but inaccurate because the signal to start tracing must be sent before the fuzzed input (i.e., the request).

A better way to do this would be to make a little LD_PRELOAD library that hooks accept() and makes it automatically signal the parent process. This should cut out a lot of the noise from the coverage.

Add binary Docker images

Disadvantages:

  • People have to trust me
  • People may end up finding bugs that have already been fixed

Advantages:

  • No more build time
  • Way less disk space used

I think this is probably worth it.

Add civetweb

Civetweb is a fork of Mongoose that might be vulnerable to some of the same problems as Mongoose. It could be worth adding to the Garden.

Add Ktor

Add ktor to the Garden.

(Thanks to Jonathan Leitschuh for bringing this to my attention)

Sometimes running the fuzzer causes assertion failures

Every once in a while, especially if the Garden has just started, running the fuzzer will cause an assertion failure. This assertion is the one that ensures that the coverage information collected is not out of date.

Grid view not accurate

In this commit there may be a typo in the comparison between j and i. Perhaps I am misunderstanding the intent behind this code, but it causes the grid view not to work in "both" directions?

When the line 101 = if j <=i:
j is less than or equal to i

When the line 101 = if j == i:
j is equal to i

Payload was set to "payload 'POST / HTTP/1.1\r\nHost: a\r\nTransfer-Encoding: chunked\r\n\r\n0\n\r\n'"

\Tom

HTTP/2

HTTP/2 support in the Garden is limited. I had a half-baked version of this at one point, but I removed it because it was distracting from HTTP/1, and I was using an external library for HPACK.

It would be nice to add proper H2 support.

Optimize timeouts

Currently, the Garden uses a fixed timeout for each type of target. We could achieve orders of magnitude better performance by using dynamic timeouts.

HTTP/3

I have previously played with adding H3 support to the Garden, but didn't get very far. This would be really nice to have.

Re-add Envoy

and figure out a way to make the build not take 100000 years

Fix Beast target

When you fuzz the Beast target for too long, it starts hogging a core. I should probably figure this out.

Make repl a little prettier

Some UI pain points:

  1. In a transducer_fanout, rejection messages are printed separately from regular output.
  2. In history, alignment is weird because numbers can have different numbers of digits.

Add Kestrel

Add Kestrel, the ASP.NET web server, to the Garden.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.