
* linux kernel (x509_cert) and process fuzzing example * rework filters * update to latest qemu * working for process and kernel fuzzing * new i2s mutator for binary only fuzzers * refactoring modules with new filtering interface * add state as parameter of harness * hide unused global in usermode * Script for stub bindings generation * do not try to check whether it is worth generating the bindings, always generate when the env variable is on. * add taplo to fmt_all.sh * Moved fuzzers (again) in a target-centric way. * fix rust 2024 warnings. * new libafl_qemu harness structure. * rename qemu_systemmode into qemu_baremetal * fix qemu baremetal makefile * fix formatter --------- Co-authored-by: Toka <tokazerkje@outlook.com>
30 lines
650 B
C
30 lines
650 B
C
#include <stdint.h>
|
|
#include <assert.h>
|
|
|
|
#define STBI_ASSERT(x)
|
|
#define STBI_NO_SIMD
|
|
#define STBI_NO_LINEAR
|
|
#define STBI_NO_STDIO
|
|
#define STB_IMAGE_IMPLEMENTATION
|
|
|
|
#include "stb_image.h"
|
|
|
|
int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
|
|
int x, y, channels;
|
|
|
|
if (!stbi_info_from_memory(data, size, &x, &y, &channels)) { return 0; }
|
|
|
|
/* exit if the image is larger than ~80MB */
|
|
if (y && x > (80000000 / 4) / y) { return 0; }
|
|
|
|
unsigned char *img = stbi_load_from_memory(data, size, &x, &y, &channels, 4);
|
|
|
|
free(img);
|
|
|
|
// if (x > 10000) free(img); // free crash
|
|
|
|
// if (x > 10000) {free(img);} // free crash
|
|
|
|
return 0;
|
|
}
|