#include <stdint.h>
|
|
#include <stddef.h>
|
|
#define TINYEXR_IMPLEMENTATION
|
|
#include "tinyexr.h"
|
|
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
|
|
EXRVersion exr_version;
|
|
EXRImage exr_image;
|
|
EXRHeader exr_header;
|
|
int ret = ParseEXRVersionFromMemory(&exr_version, data, size);
|
|
if (ret != TINYEXR_SUCCESS) {
|
|
return 0;
|
|
}
|
|
InitEXRHeader(&exr_header);
|
|
ret = ParseEXRHeaderFromMemory(&exr_header, &exr_version, data, size, NULL);
|
|
if (ret != TINYEXR_SUCCESS) {
|
|
FreeEXRHeader(&exr_header);
|
|
return 0;
|
|
}
|
|
InitEXRImage(&exr_image);
|
|
ret = LoadEXRImageFromMemory(&exr_image, &exr_header, data, size, NULL);
|
|
if (ret != TINYEXR_SUCCESS) {
|
|
FreeEXRHeader(&exr_header);
|
|
FreeEXRImage(&exr_image);
|
|
return 0;
|
|
}
|
|
FreeEXRHeader(&exr_header);
|
|
FreeEXRImage(&exr_image);
|
|
return 0;
|
|
}
|