Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.
Sign upexec/s eventually goes to 0, jsfuzz seems to stop working #1
Comments
|
@humphd Thanks for trying out! Looks like you found a DoS/Infinite loop pretty quickly as well as a bug in the timeout detector which is fixed now. It should report&save the crash/testcase when you rerun this with v1.0.5. |
|
@humphd I'll appreciate if you can add a link to the bug/bugfix in the trophies:) https://github.com/fuzzitdev/jsfuzz#trophies |
|
Great, thanks @yevgenypats for pushing a fix. I've updated to
I've been able to hit this a number of times, and when I try the test cases saved to the crash files, I get an expected exception error. That is, it seems like it's failing as it should:
I'm not sure how to interpret this, and whether or not to pursue it further. I'm starting to wonder if the problem is in how I wrote the test case for jsfuzz: specifically how I reuse the parser instance over and over. Maybe there is some accumulated state that (eventually) causes problems. I've currently trying two other cases that eliminate that problem (i.e., create a parser per run of the fuzz test), and both have been working fine for quite a while. I'll keep them going, but wanted to get your take on this. |
|
@humphd I think you are correct ( I didn't notice that you reuse the fuzzer), looks like the accumulated is causing the problem. It is best to start from a clean state for each run otherwise it will be hard to triage and understand which test-case cause the problem. |
Really cool tool! I tried it out on a few libs today, and in one case the test run eventually just seemed to stop doing anything. It looks like jsfuzz is still working, but doing nothing (
exec/sgoes to 0 and stays there). Am I doing something wrong here, or is jsfuzz?Here's my test case for the rss-parser module:
And here's what I see when I run it. It just keeps going forever on
#56120 PULSE cov: 2618 corp: 55 exec/s: 0.It goes on like that forever. I tried killing it, and restarting, and it happens again, just in a different spot:
A third run seems to go on fine for as long as I'm willing to wait, so it's not guaranteed to happen.