File: fuzz.cc

package info (click to toggle)
tinyexr 1.0.0%2Bdfsg-1%2Bdeb11u1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 5,268 kB
  • sloc: cpp: 15,319; makefile: 74; sh: 18; ansic: 15
file content (29 lines) | stat: -rw-r--r-- 831 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#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;
}