8000 adding fuzzer for espeak_synth by kmamadoudram · Pull Request #1178 · espeak-ng/espeak-ng · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

adding fuzzer for espeak_synth #1178

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 70 commits into from
Jun 30, 2022
Merged

adding fuzzer for espeak_synth #1178

merged 70 commits into from
Jun 30, 2022

Conversation

kmamadoudram
Copy link
Contributor

Hi all,

We are 3 students in IT security (@annastan, @kmamadoudram, @yocvito) and are currently working on fuzzing liblouis/espeak-ng for a school project with @sthibaul. For espeak, , we have decided to focus on espeak_Synth function and have achieved to find known bugs (here) in previous commits, thus we come here to show you the work we have done.

So, what have we done yet ?
Basically, we have used libfuzzer to implements fuzzing on espeak_Synth. The fuzzer just look for an ENV variable containing the language you want to test and start fuzzing.
If you are already familiar with libfuzzer, then there is no other specific switch than libfuzzer ones to pass to the fuzzer.
The only thing you need to care about is configuration but you can find more information on how to use the fuzzer we added in tests/fuzzing/README.md
To check that our fuzzer was actually working, we have used clang coverage and have added the related compiler flags to the espeak-ng directory sources in makefile.am. We were thus able to see that our fuzzer was, indeed, really reaching a lot of the source code. (more info on coverage in the README.md)

What’s now ?
We will continue to integrate and improve the fuzzers in the next months. It's not entirely ready yet but we will continue to modify it and come back to you to highlights our changes.
Finally, to find bugs, we need relevant corpus files for each language. We have built a first skeleton of what could be a fuzzer for this functions and have added some scripts to help using it. We are still working on it and will be grateful about any suggestions you could make.

Thank you.

@sthibaul
Copy link
Collaborator

Ok, so this now looks in good shape.

But... it finds bugs :)

Perhaps we can change the workflow rules to run this every week or so for now, so people get to know the bugs which need to be fixed before we can run this on master & pull requests?

@alex19EP
Copy link
Member

Perhaps we can change the workflow rules to run this every week or so for now, so people get to know the bugs which need to be fixed before we can run this on master & pull requests?

agree.

@sthibaul sthibaul merged commit 1f76c4b into espeak-ng:master Jun 30, 2022
@sthibaul
Copy link
Collaborator

Ok, commited, thanks a lot @annastan, @kmamadoudram, @yocvito !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants
0