fuzzers: ignore size limits when compiled standalone
This way we can still call fuzzers on old samples, but oss-fuzz will not waste its and our time finding overly large inputs.
This commit is contained in:
@@ -84,7 +84,7 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
|
||||
_cleanup_(boot_config_free) BootConfig config = BOOT_CONFIG_NULL;
|
||||
int r;
|
||||
|
||||
if (size > 65536)
|
||||
if (outside_size_range(size, 0, 65536))
|
||||
return 0;
|
||||
|
||||
/* Disable most logging if not running standalone */
|
||||
|
||||
@@ -12,7 +12,7 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
|
||||
_cleanup_fclose_ FILE *f = NULL;
|
||||
_cleanup_strv_free_ char **rl = NULL, **rlp = NULL;
|
||||
|
||||
if (size > 65536)
|
||||
if (outside_size_range(size, 0, 65536))
|
||||
return 0;
|
||||
|
||||
f = data_to_file(data, size);
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
#include <stddef.h>
|
||||
#include <stdint.h>
|
||||
|
||||
#include "env-util.h"
|
||||
#include "fileio.h"
|
||||
|
||||
/* The entry point into the fuzzer */
|
||||
@@ -15,3 +16,14 @@ static inline FILE* data_to_file(const uint8_t *data, size_t size) {
|
||||
else
|
||||
return fmemopen_unlocked((char*) data, size, "re");
|
||||
}
|
||||
|
||||
/* Check if we are within the specified size range.
|
||||
* The upper limit is ignored if FUZZ_USE_SIZE_LIMIT is unset.
|
||||
*/
|
||||
static inline bool outside_size_range(size_t size, size_t lower, size_t upper) {
|
||||
if (size < lower)
|
||||
return true;
|
||||
if (size > upper)
|
||||
return FUZZ_USE_SIZE_LIMIT;
|
||||
return false;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user