summaryrefslogtreecommitdiff
path: root/Meta/Lagom/Fuzzers
AgeCommit message (Collapse)Author
2021-06-24LibSQL: Move Lexer and Parser machinery to AST directoryJan de Visser
The SQL engine is expected to be a fairly sizeable piece of software. Therefore we're starting to restructure the codebase for growth.
2021-06-18Lagom/Fuzzers: Add fuzzers for all current hashing functionsLuke
Namely MD5, SHA1, SHA256, SHA384 and SHA512.
2021-06-11Meta: Fuzz the LibIMAP Parserx-yl
2021-06-06AK+Everywhere: Disallow constructing Functions from incompatible typesAli Mohammad Pur
Previously, AK::Function would accept _any_ callable type, and try to call it when called, first with the given set of arguments, then with zero arguments, and if all of those failed, it would simply not call the function and **return a value-constructed Out type**. This lead to many, many, many hard to debug situations when someone forgot a `const` in their lambda argument types, and many cases of people taking zero arguments in their lambdas to ignore them. This commit reworks the Function interface to not include any such surprising behaviour, if your function instance is not callable with the declared argument set of the Function, it can simply not be assigned to that Function instance, end of story.
2021-05-31Lagom/Fuzzers: Add SQL parser fuzzerLuke
2021-05-31AK: Replace ByteBuffer::grow with resize()/ensure_capacity()Gunnar Beutner
Previously ByteBuffer::grow() behaved like Vector<T>::resize(). However the function name was somewhat ambiguous - and so this patch updates ByteBuffer to behave more like Vector<T> by replacing grow() with resize() and adding an ensure_capacity() method. This also lets the user change the buffer's capacity without affecting the size which was not previously possible. Additionally this patch makes the capacity() method public (again).
2021-05-30Fuzz+LibGfx: When fuzzing GIFLoader, try to load all framesBen Wiederhake
2021-05-21Meta: Add a Wasm parser fuzzerAli Mohammad Pur
2021-05-16AK+Userland: Fix some compiler warnings and make variables const-refGunnar Beutner
This fixes a few compiler warnings and makes some variables const-ref in preparation for the next commit which changes how ByteBuffer works.
2021-05-07Meta: Fix Fuzzers CMakeLists.txt and ReadMe.md to use CXX_COMPILER_IDBrian Gianforcaro
Previously the directions omitted that you have to specify `-CMAKE_CXX_COMPILER` when building the Fuzzers. This would cause all kinds of weird problems at compilation and link time. You can't specify one or the other, they must both be pointing at clang in order for things to work as experted. Fix this by updating the documentation to specify that the user should specify both the C and CXX compiler explicitly to be safe, as well as forcing the cmake clang argument handling to modify the CXX compiler variable instead of the C version.
2021-05-01Lagom/Fuzzers: Add fuzzers for Windows-1251 and Windows-1255 decodersIdan Horowitz
2021-04-22Everything: Move to SPDX license identifiers in all files.Brian Gianforcaro
SPDX License Identifiers are a more compact / standardized way of representing file license information. See: https://spdx.dev/resources/use/#identifiers This was done with the `ambr` search and replace tool. ambr --no-parent-ignore --key-from-file --rep-from-file key.txt rep.txt *
2021-04-11Everywhere: Update references from ReadMe.md => README.mdAndreas Kling
2021-03-27Lagom/Fuzzers: Add fuzzer for zip file parserLuke
2021-03-17LibJS: Rename GlobalObject::initialize() => initialize_global_object()Andreas Kling
This function was shadowing Object::initialize() which cannot be called on global objects and has a different set of parameters.
2021-03-14Lagom/Fuzzers: Add fuzzers for the new Gzip and Deflate compressorsLuke
2021-03-14Lagom/Fuzzers: Add fuzzers for Latin 1, Latin 2 and UTF16-BELuke
No fuzzer for UTF-8 as it (currently) just returns the input.
2021-03-12FuzzilliJs: Add missing <errno.h> includeAndreas Kling
2021-03-04Lagom/Fuzzers: Add fuzzers for LibCompessLuke
Adds fuzzers for Deflate, Gzip and Zlib.
2021-03-01Lagom/Fuzzers: Add WAV fuzzerLuke
2021-02-26Everywhere: Remove a bunch of redundant 'AK::' namespace prefixesLinus Groh
This is basically just for consistency, it's quite strange to see multiple AK container types next to each other, some with and some without the namespace prefix - we're 'using AK::Foo;' a lot and should leverage that. :^)
2021-02-23Everywhere: Rename ASSERT => VERIFYAndreas Kling
(...and ASSERT_NOT_REACHED => VERIFY_NOT_REACHED) Since all of these checks are done in release builds as well, let's rename them to VERIFY to prevent confusion, as everyone is used to assertions being compiled out in release. We can introduce a new ASSERT macro that is specifically for debug checks, but I'm doing this wholesale conversion first since we've accumulated thousands of these already, and it's not immediately obvious which ones are suitable for ASSERT.
2021-02-13Lagom/Fuzzers: Add RSA key parser fuzzerLuke
First issue: #5317
2021-02-08Everywhere: Remove unnecessary headers 4/4Ben Wiederhake
Arbitrarily split up to make git bisect easier. These unnecessary #include's were found by combining an automated tool (which determined likely candidates) and some brain power (which decided whether the #include is also semantically superfluous).
2021-02-08Fuzz: Remove unused FuzziliJS headerBen Wiederhake
2021-01-24Lagom/Fuzzers: Fix FuzzilliJs build and update patch for new Fuzzilli versionLuke
-fsanitize=fuzzer was being added to LINKER_FLAGS from Lagom/CMakeLists, which we don't want with FuzzilliJs as we want to define the functions it provides ourselves.
2021-01-09Everywhere: Replace a bundle of dbg with dbgln.asynts
These changes are arbitrarily divided into multiple commits to make it easier to find potentially introduced bugs with git bisect.Everything: The modifications in this commit were automatically made using the following command: find . -name '*.cpp' -exec sed -i -E 's/dbg\(\) << ("[^"{]*");/dbgln\(\1\);/' {} \;
2021-01-03FuzzJs: If the program successfully parsed, try running itLuke
This should help us get a lot more coverage in LibJS.
2021-01-02Lagom/Fuzzers: Add TTF fuzzerLuke
2020-12-25LibELF: Remove ELF::Loader and move everyone to ELF::ImageAndreas Kling
This commit gets rid of ELF::Loader entirely since its very ambiguous purpose was actually to load executables for the kernel, and that is now handled by the kernel itself. This patch includes some drive-by cleanup in LibDebug and CrashDaemon enabled by the fact that we no longer need to keep the ref-counted ELF::Loader around.
2020-12-21Everywhere: Switch from (void) to [[maybe_unused]] (#4473)Lenny Maiorani
Problem: - `(void)` simply casts the expression to void. This is understood to indicate that it is ignored, but this is really a compiler trick to get the compiler to not generate a warning. Solution: - Use the `[[maybe_unused]]` attribute to indicate the value is unused. Note: - Functions taking a `(void)` argument list have also been changed to `()` because this is not needed and shows up in the same grep command.
2020-12-19LibHTTP: Make HTTPRequest::from_raw_request() take a ReadonlyBytesAndreas Kling
This allows us to get rid of some ByteBuffer::wrap() usage.
2020-12-14Lagom/Fuzzers: Fix creation of ELF::LoaderItamar
2020-12-02Meta+LibHTTP: Fuzz HTTP request parsingBen Wiederhake
2020-11-30Lagom/Fuzzers: Add URL fuzzerLuke
2020-11-29Meta: Add GitHub Actions workflow for Lagom with FuzzersLuke
There are cases where Lagom will build with GCC but not Clang. This often goes unnoticed for a while as we don't often build with Clang. However, this is now important to test in CI because of the OSS-Fuzz integration. Note that this only tests the build, it does not run any tests. Note that it also only builds LagomCore, Lagom and the fuzzers. It does not build the other programs that use Lagom.
2020-11-29Lagom: Add a Shell parser fuzzerAnotherTest
2020-11-29Lagom: Add Regex fuzzersLinus Groh
2020-11-27Lagom: Various fixes to make Lagom run on OSS-Fuzz (#4176)DavidKorczynski
2020-11-26Lagom: Rename FuzzBMP to FuzzBMPLoaderNico Weber
2020-11-26Lagom: Make BMP fuzzer look like the other image loader fuzzersNico Weber
2020-11-26Lagom: Add fuzzers for remaining image loaders: ICO, PNG, PBM, PGMNico Weber
2020-11-25Lagom: Fix FuzzJs buildLinus Groh
This was broken with the JS::Parser::Error position changes, but I don't actually see a reason to do anything with the parser errors here, so let's remove it and consider simply not crashing a success. :^)
2020-11-20Lagom: Add a gif loader fuzzerNico Weber
2020-11-19Lagom: Add a jpg fuzzerNico Weber
2020-11-19Lagom: Make fuzzer cmake less repetitiveNico Weber
2020-11-19Lagom: Add a PPM fuzzerNico Weber
It finds the problem fixed in 69518bd178ebfaa but nothing else.
2020-11-14Lagom: Add a gemini fuzzerNico Weber
Didn't find anything interesting, but might as well check it in.
2020-11-08Lagom/Fuzzers: Add a Dockerfile for FuzzilliJsLinus Groh
Based on Fedora. This allows building and running FuzzilliJs and Fuzzilli itself in a Docker/Podman container.
2020-11-07Lagom/Fuzzers: Add Fuzzilli version of FuzzJsLuke
Fuzzilli is a JavaScript engine fuzzer made by googleprojectzero. https://github.com/googleprojectzero/fuzzilli/