git subrepo pull (merge) --force deps/libchdr
[pcsx_rearmed.git] / deps / libchdr / deps / zstd-1.5.5 / tests / fuzz / fuzz_helpers.c
CommitLineData
648db22b 1/*
2 * Copyright (c) Meta Platforms, Inc. and affiliates.
3 * All rights reserved.
4 *
5 * This source code is licensed under both the BSD-style license (found in the
6 * LICENSE file in the root directory of this source tree) and the GPLv2 (found
7 * in the COPYING file in the root directory of this source tree).
8 * You may select, at your option, one of the above-listed licenses.
9 */
10#include "fuzz_helpers.h"
11
12#include <stddef.h>
13#include <stdlib.h>
14#include <string.h>
15
16void* FUZZ_malloc(size_t size)
17{
18 if (size > 0) {
19 void* const mem = malloc(size);
20 FUZZ_ASSERT(mem);
21 return mem;
22 }
23 return NULL;
24}
25
26void* FUZZ_malloc_rand(size_t size, FUZZ_dataProducer_t *producer)
27{
28 if (size > 0) {
29 void* const mem = malloc(size);
30 FUZZ_ASSERT(mem);
31 return mem;
32 } else {
33 uintptr_t ptr = 0;
34 /* Add +- 1M 50% of the time */
35 if (FUZZ_dataProducer_uint32Range(producer, 0, 1))
36 FUZZ_dataProducer_int32Range(producer, -1000000, 1000000);
37 return (void*)ptr;
38 }
39
40}
41
42int FUZZ_memcmp(void const* lhs, void const* rhs, size_t size)
43{
44 if (size == 0) {
45 return 0;
46 }
47 return memcmp(lhs, rhs, size);
48}