Coverage Report

Created: 2024-11-21 06:52

/src/LAME-fuzzers/fuzzing-headers/include/fuzzing/memory.hpp
Line
Count
Source (jump to first uncovered line)
1
#ifndef FUZZING_MEMORY_HPP
2
#define FUZZING_MEMORY_HPP
3
4
#include <stdio.h>
5
#include <optional>
6
7
namespace fuzzing {
8
namespace memory {
9
10
#ifndef FUZZING_HEADERS_NO_IMPL
11
#if ASAN == 1
12
extern "C" void *__asan_region_is_poisoned(const void *beg, size_t size);
13
#endif
14
15
void memory_test_asan(const void* data, const size_t size)
16
0
{
17
0
    (void)data;
18
0
    (void)size;
19
20
#if ASAN == 1
21
    if ( __asan_region_is_poisoned(data, size) != NULL ) {
22
        abort();
23
    }
24
#endif
25
0
}
26
27
void memory_test_msan(const void* data, const size_t size)
28
8.11k
{
29
8.11k
    (void)data;
30
8.11k
    (void)size;
31
32
#if MSAN == 1
33
    FILE* fp = fopen("/dev/null", "wb");
34
    if ( fp == nullptr ) {
35
        abort();
36
    }
37
    fwrite(data, size, 1, fp);
38
    fclose(fp);
39
#endif
40
8.11k
}
41
42
void memory_test(const void* data, const size_t size)
43
0
{
44
0
    memory_test_asan(data, size);
45
0
    memory_test_msan(data, size);
46
0
}
47
48
template <class T>
49
void memory_test(const T& t)
50
{
51
    (void)t;
52
}
53
54
template <>
55
void memory_test(const std::string& s)
56
0
{
57
0
    (void)s;
58
59
#if MSAN == 1
60
    memory_test(s.data(), s.size());
61
#endif
62
0
}
63
64
#endif
65
66
} /* namespace memory */
67
} /* namespace fuzzing */
68
69
#endif