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
if
(decoded == NULL)
23
return
;
24
25
for
(uint8_t mode = SCBase64ModeRFC2045; mode <= SCBase64ModeStrict; mode++) {
26
(void)SCBase64Decode(
src
,
len
, mode, decoded);
27
}
28
29
SCFree
(decoded);
30
}
31
32
int
LLVMFuzzerTestOneInput
(
const
uint8_t *data,
size_t
size)
33
{
34
if
(initialized == 0) {
35
// Redirects logs to /dev/null
36
setenv
(
"SC_LOG_OP_IFACE"
,
"file"
, 0);
37
setenv
(
"SC_LOG_FILE"
,
"/dev/null"
, 0);
38
// global init
39
InitGlobal
();
40
SCRunmodeSet
(
RUNMODE_UNITTEST
);
41
nalloc_init
(NULL);
42
// do not restrict nalloc
43
initialized = 1;
44
}
45
46
if
(size <
BLK_SIZE
)
47
return
0;
48
49
nalloc_start
(data, size);
50
Base64FuzzTest(data, size);
51
nalloc_end
();
52
53
return
0;
54
}
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:306
LLVMFuzzerTestOneInput
int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
Definition:
fuzz_decodebase64.c:32
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:3060
SCCalloc
#define SCCalloc(nm, sz)
Definition:
util-mem.h:53
src
tests
fuzz
fuzz_decodebase64.c
Generated on Sat Jun 27 2026 23:30:33 for suricata by
1.8.18