ladybird/Meta/Lagom/Fuzzers
kleines Filmröllchen 96d02a3e75 LibAudio: New error propagation API in Loader and Buffer
Previously, a libc-like out-of-line error information was used in the
loader and its plugins. Now, all functions that may fail to do their job
return some sort of Result. The universally-used error type ist the new
LoaderError, which can contain information about the general error
category (such as file format, I/O, unimplemented features), an error
description, and location information, such as file index or sample
index.

Additionally, the loader plugins try to do as little work as possible in
their constructors. Right after being constructed, a user should call
initialize() and check the errors returned from there. (This is done
transparently by Loader itself.) If a constructor caused an error, the
call to initialize should check and return it immediately.

This opportunity was used to rework a lot of the internal error
propagation in both loader classes, especially FlacLoader. Therefore, a
couple of other refactorings may have sneaked in as well.

The adoption of LibAudio users is minimal. Piano's adoption is not
important, as the code will receive major refactoring in the near future
anyways. SoundPlayer's adoption is also less important, as changes to
refactor it are in the works as well. aplay's adoption is the best and
may serve as an example for other users. It also includes new buffering
behavior.

Buffer also gets some attention, making it OOM-safe and thereby also
propagating its errors to the user.
2021-11-28 13:33:51 -08:00
..
add-serenity-support-to-fuzzilli.patch Lagom/Fuzzers: Fix FuzzilliJs build and update patch for new Fuzzilli version 2021-01-24 00:40:49 +01:00
CMakeLists.txt Lagom/Fuzzers: Add fuzzer for PDF document 2021-10-30 10:33:56 -07:00
FuzzASN1.cpp Lagom/Fuzzers: Add fuzzer for the LibTLS ASN1 parser 2021-09-18 17:15:08 +00:00
FuzzBMPLoader.cpp Fuzzers: Use ImageDecoderPlugin::frame() in image decoder fuzzers 2021-11-18 21:11:30 +01:00
FuzzCyrillicDecoder.cpp Lagom/Fuzzers: Add fuzzers for Windows-1251 and Windows-1255 decoders 2021-05-01 17:59:08 +02:00
FuzzDeflateCompression.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
FuzzDeflateDecompression.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
FuzzELF.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
FuzzFlacLoader.cpp LibAudio: New error propagation API in Loader and Buffer 2021-11-28 13:33:51 -08:00
FuzzGemini.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
FuzzGIFLoader.cpp LibGfx: Make ImageDecoderPlugin::frame() return ErrorOr<> 2021-11-21 20:22:48 +01:00
FuzzGzipCompression.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
FuzzGzipDecompression.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
FuzzHebrewDecoder.cpp Lagom/Fuzzers: Add fuzzers for Windows-1251 and Windows-1255 decoders 2021-05-01 17:59:08 +02:00
FuzzHttpRequest.cpp AK+Userland: Fix some compiler warnings and make variables const-ref 2021-05-16 17:49:42 +02:00
FuzzICOLoader.cpp Fuzzers: Use ImageDecoderPlugin::frame() in image decoder fuzzers 2021-11-18 21:11:30 +01:00
FuzzilliJs.cpp FuzzilliJS: Convert native functions to ThrowCompletionOr 2021-10-31 18:20:37 +02:00
FuzzilliJs.dockerfile Lagom/Fuzzers: Add a Dockerfile for FuzzilliJs 2020-11-08 11:01:07 +01:00
FuzzilliJsInstructions.md Meta: Fix broken external links 2021-10-10 15:18:55 -07:00
FuzzIMAPParser.cpp Everywhere: Make ByteBuffer::{create_*,copy}() OOM-safe 2021-09-06 01:53:26 +02:00
FuzzJPGLoader.cpp Fuzzers: Use ImageDecoderPlugin::frame() in image decoder fuzzers 2021-11-18 21:11:30 +01:00
FuzzJs.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
FuzzJs.dict Lagom: Add fuzz testing for LibJS using libFuzzer (#1692) 2020-04-08 10:40:02 +02:00
FuzzLatin1Decoder.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
FuzzLatin2Decoder.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
FuzzMarkdown.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
FuzzMD5.cpp Everywhere: Make ByteBuffer::{create_*,copy}() OOM-safe 2021-09-06 01:53:26 +02:00
FuzzPBMLoader.cpp Fuzzers: Use ImageDecoderPlugin::frame() in image decoder fuzzers 2021-11-18 21:11:30 +01:00
FuzzPDF.cpp Lagom/Fuzzers: Add fuzzer for PDF document 2021-10-30 10:33:56 -07:00
FuzzPEM.cpp Lagom/Fuzzers: Add fuzzer for the LibCrypto PEM parser 2021-09-18 17:15:08 +00:00
FuzzPGMLoader.cpp Fuzzers: Use ImageDecoderPlugin::frame() in image decoder fuzzers 2021-11-18 21:11:30 +01:00
FuzzPNGLoader.cpp Fuzzers: Use ImageDecoderPlugin::frame() in image decoder fuzzers 2021-11-18 21:11:30 +01:00
FuzzPPMLoader.cpp Fuzzers: Use ImageDecoderPlugin::frame() in image decoder fuzzers 2021-11-18 21:11:30 +01:00
FuzzQuotedPrintableParser.cpp Lagom/Fuzzers: Add fuzzer for the quoted printable decoder 2021-07-24 20:11:28 +04:30
FuzzRegexECMA262.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
FuzzRegexPosixBasic.cpp Lagom/Fuzzers: Add fuzzer for POSIX basic regex parser 2021-07-13 01:34:22 +04:30
FuzzRegexPosixExtended.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
FuzzRSAKeyParsing.cpp Everywhere: Make ByteBuffer::{create_*,copy}() OOM-safe 2021-09-06 01:53:26 +02:00
FuzzSHA1.cpp Everywhere: Make ByteBuffer::{create_*,copy}() OOM-safe 2021-09-06 01:53:26 +02:00
FuzzSHA256.cpp Everywhere: Make ByteBuffer::{create_*,copy}() OOM-safe 2021-09-06 01:53:26 +02:00
FuzzSHA384.cpp Everywhere: Make ByteBuffer::{create_*,copy}() OOM-safe 2021-09-06 01:53:26 +02:00
FuzzSHA512.cpp Everywhere: Make ByteBuffer::{create_*,copy}() OOM-safe 2021-09-06 01:53:26 +02:00
FuzzShell.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
FuzzSQLParser.cpp LibSQL: Move Lexer and Parser machinery to AST directory 2021-06-24 00:36:53 +02:00
FuzzTTF.cpp LibTTF/LibGfx: Remove circular dependency by merging LibTTF into LibGfx 2021-07-29 21:46:25 +01:00
FuzzURL.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
FuzzUTF16BEDecoder.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
FuzzWasmParser.cpp Meta: Add a Wasm parser fuzzer 2021-05-21 00:15:23 +01:00
FuzzWAVLoader.cpp LibAudio: New error propagation API in Loader and Buffer 2021-11-28 13:33:51 -08:00
FuzzZip.cpp Everywhere: Make ByteBuffer::{create_*,copy}() OOM-safe 2021-09-06 01:53:26 +02:00
FuzzZlibDecompression.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00