suricata
fuzz_decodebase64.c
Go to the documentation of this file.
1
/**
2
* @file
3
* @author Shivani Bhardwaj <shivani@oisf.net>
4
* fuzz target for DecodeBase64
5
*/
6
7
#include "
suricata-common.h
"
8
#include "
suricata.h
"
9
#include "
rust.h
"
10
#include "
nallocinc.c
"
11
12
#define BLK_SIZE 2
13
14
int
LLVMFuzzerTestOneInput
(
const
uint8_t *data,
size_t
size);
15
16
static
int
initialized = 0;
17
18
static
void
Base64FuzzTest(
const
uint8_t *
src
,
size_t
len
)
19
{
20
uint32_t decoded_len = SCBase64DecodeBufferSize((uint32_t)
len
);
21
uint8_t *decoded =
SCCalloc
(decoded_len,
sizeof
(uint8_t));
22
23
for
(uint8_t mode = SCBase64ModeRFC2045; mode <= SCBase64ModeStrict; mode++) {
24
(void)SCBase64Decode(
src
,
len
, mode, decoded);
25
}
26
27
SCFree
(decoded);
28
}
29
30
int
LLVMFuzzerTestOneInput
(
const
uint8_t *data,
size_t
size)
31
{
32
if
(initialized == 0) {
33
// Redirects logs to /dev/null
34
setenv
(
"SC_LOG_OP_IFACE"
,
"file"
, 0);
35
setenv
(
"SC_LOG_FILE"
,
"/dev/null"
, 0);
36
// global init
37
InitGlobal
();
38
SCRunmodeSet
(
RUNMODE_UNITTEST
);
39
nalloc_init
(NULL);
40
// do not restrict nalloc
41
initialized = 1;
42
}
43
44
if
(size <
BLK_SIZE
)
45
return
0;
46
47
nalloc_start
(data, size);
48
Base64FuzzTest(data, size);
49
nalloc_end
();
50
51
return
0;
52
}
len
uint8_t len
Definition:
app-layer-dnp3.h:2
rust.h
nallocinc.c
SCRunmodeSet
void SCRunmodeSet(SCRunMode run_mode)
Set the current run mode.
Definition:
suricata.c:288
LLVMFuzzerTestOneInput
int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
Definition:
fuzz_decodebase64.c:30
RUNMODE_UNITTEST
@ RUNMODE_UNITTEST
Definition:
runmodes.h:41
setenv
void setenv(const char *name, const char *value, int overwrite)
nalloc_init
#define nalloc_init(x)
Definition:
nallocinc.c:49
suricata-common.h
nalloc_start
#define nalloc_start(x, y)
Definition:
nallocinc.c:51
nalloc_end
#define nalloc_end()
Definition:
nallocinc.c:52
BLK_SIZE
#define BLK_SIZE
Definition:
fuzz_decodebase64.c:12
SCFree
#define SCFree(p)
Definition:
util-mem.h:61
src
uint16_t src
Definition:
app-layer-dnp3.h:5
suricata.h
InitGlobal
int InitGlobal(void)
Global initialization common to all runmodes.
Definition:
suricata.c:2998
SCCalloc
#define SCCalloc(nm, sz)
Definition:
util-mem.h:53
src
tests
fuzz
fuzz_decodebase64.c
Generated on Thu Jan 15 2026 23:30:34 for suricata by
1.8.18