/src/zstd/tests/fuzz/fuzz_helpers.c
Line | Count | Source (jump to first uncovered line) |
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 | | |
16 | | void* FUZZ_malloc(size_t size) |
17 | 24.2k | { |
18 | 24.2k | if (size > 0) { |
19 | 24.2k | void* const mem = malloc(size); |
20 | 24.2k | FUZZ_ASSERT(mem); |
21 | 24.2k | return mem; |
22 | 24.2k | } |
23 | 88 | return NULL; |
24 | 24.2k | } |
25 | | |
26 | | void* FUZZ_malloc_rand(size_t size, FUZZ_dataProducer_t *producer) |
27 | 0 | { |
28 | 0 | if (size > 0) { |
29 | 0 | void* const mem = malloc(size); |
30 | 0 | FUZZ_ASSERT(mem); |
31 | 0 | return mem; |
32 | 0 | } else { |
33 | 0 | uintptr_t ptr = 0; |
34 | | /* Add +- 1M 50% of the time */ |
35 | 0 | if (FUZZ_dataProducer_uint32Range(producer, 0, 1)) |
36 | 0 | FUZZ_dataProducer_int32Range(producer, -1000000, 1000000); |
37 | 0 | return (void*)ptr; |
38 | 0 | } |
39 | |
|
40 | 0 | } |
41 | | |
42 | | int FUZZ_memcmp(void const* lhs, void const* rhs, size_t size) |
43 | 0 | { |
44 | 0 | if (size == 0) { |
45 | 0 | return 0; |
46 | 0 | } |
47 | 0 | return memcmp(lhs, rhs, size); |
48 | 0 | } |