Skip to content

Memory leak in ucl_parser_new() / ucl_parser_register_macro() #345

@Young-Nong

Description

@Young-Nong

When using libucl’s parser with a specially crafted input (testcase: ucl_add_string_fuzzer_18191.bin), I observed a significant memory leak: many large allocations in ucl_parser_new() and related functions are not freed. The leak was detected via AddressSanitizer/LeakSanitizer.

Reproduction command and output:

(base) yunong@cailab-gpu4:~/oss-fuzz$ python infra/helper.py reproduce libucl ucl_add_string_fuzzer ./povs_final/ucl_add_string_fuzzer_18191.bin
INFO:__main__:Running: docker run --privileged --shm-size=2g --platform linux/amd64 --rm -i -e HELPER=True -e ARCHITECTURE=x86_64 -v /data1/yunong/oss-fuzz/build/out/libucl:/out -v /data1/yunong/oss-fuzz/povs_final/ucl_add_string_fuzzer_18191.bin:/testcase -t gcr.io/oss-fuzz-base/base-runner:latest reproduce ucl_add_string_fuzzer -runs=100.

+ FUZZER=ucl_add_string_fuzzer
+ shift
+ '[' '!' -v TESTCASE ']'
+ TESTCASE=/testcase
+ '[' '!' -f /testcase ']'
+ export RUN_FUZZER_MODE=interactive
+ RUN_FUZZER_MODE=interactive
+ export FUZZING_ENGINE=libfuzzer
+ FUZZING_ENGINE=libfuzzer
+ export SKIP_SEED_CORPUS=1
+ SKIP_SEED_CORPUS=1
+ run_fuzzer ucl_add_string_fuzzer -runs=100 /testcase
sysctl: permission denied on key "vm.mmap_rnd_bits", ignoring
/out/ucl_add_string_fuzzer -- -rss_limit_mb=2560 -timeout=25 -runs=100 /testcase -detect_leaks=0 < /dev/null
INFO: libFuzzer ignores flags that start with '--'
INFO: Running with entropic power schedule (0xFF, 100).
INFO: Seed: 261024634
INFO: Loaded 1 modules   (3846 inline 8-bit counters): 3846 [0x55f56dd2dde8, 0x55f56dd2ecee),
INFO: Loaded 1 PC tables (3846 PCs): 3846 [0x55f56dd2ecf0,0x55f56dd3dd50),
/out/ucl_add_string_fuzzer: Running 1 inputs 100 time(s) each.
Running: /testcase
Executed /testcase in 12 ms
***
*** NOTE: fuzzing was not performed, you have only
***       executed the target code on a fixed set of inputs.
***

=================================================================
==18==ERROR: LeakSanitizer: detected memory leaks

Indirect leak of 51200 byte(s) in 100 object(s) allocated from:
    #0 0x55f56dc2e7a4 in malloc /src/llvm-project/compiler-rt/lib/asan/asan_malloc_linux.cpp:67:3
    #1 0x55f56dc75d56 in ucl_parser_register_macro /src/libucl/src/ucl_parser.c:2861:2
    #2 0x55f56dc7562e in ucl_parser_new /src/libucl/src/ucl_parser.c:2791:2
    #3 0x55f56dc72538 in LLVMFuzzerTestOneInput /src/libucl/tests/fuzzers/ucl_add_string_fuzzer.c:15:18
    #4 0x55f56db0fe4d in fuzzer::Fuzzer::ExecuteCallback(unsigned char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:619:13
    #5 0x55f56dafabc2 in fuzzer::RunOneTest(fuzzer::Fuzzer*, char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:329:6
    #6 0x55f56db00a90 in fuzzer::FuzzerDriver(int*, char***, int (*)(unsigned char const*, unsigned long)) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:865:9
    #7 0x55f56db2c5c2 in main /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerMain.cpp:20:10
    #8 0x7f793e958082 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x24082) (BuildId: 5792732f783158c66fb4f3756458ca24e46e827d)

DEDUP_TOKEN: __interceptor_malloc--ucl_parser_register_macro--ucl_parser_new
Indirect leak of 16800 byte(s) in 100 object(s) allocated from:
    #0 0x55f56dc2e7a4 in malloc /src/llvm-project/compiler-rt/lib/asan/asan_malloc_linux.cpp:67:3
    #1 0x55f56dc755fa in ucl_parser_new /src/libucl/src/ucl_parser.c:2784:11
    #2 0x55f56dc72538 in LLVMFuzzerTestOneInput /src/libucl/tests/fuzzers/ucl_add_string_fuzzer.c:15:18
    #3 0x55f56db0fe4d in fuzzer::Fuzzer::ExecuteCallback(unsigned char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:619:13
    #4 0x55f56dafabc2 in fuzzer::RunOneTest(fuzzer::Fuzzer*, char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:329:6
    #5 0x55f56db00a90 in fuzzer::FuzzerDriver(int*, char***, int (*)(unsigned char const*, unsigned long)) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:865:9
    #6 0x55f56db2c5c2 in main /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerMain.cpp:20:10
    #7 0x7f793e958082 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x24082) (BuildId: 5792732f783158c66fb4f3756458ca24e46e827d)

DEDUP_TOKEN: __interceptor_malloc--ucl_parser_new--LLVMFuzzerTestOneInput
Indirect leak of 12800 byte(s) in 100 object(s) allocated from:
    #0 0x55f56dc2e7a4 in malloc /src/llvm-project/compiler-rt/lib/asan/asan_malloc_linux.cpp:67:3
    #1 0x55f56dc78dcd in ucl_create_err /src/libucl/src/./ucl_internal.h:381:3
    #2 0x55f56dc8d019 in ucl_set_err /src/libucl/src/ucl_parser.c:90:3
    #3 0x55f56dc8d019 in ucl_lex_json_string /src/libucl/src/ucl_parser.c:1111:5
    #4 0x55f56dc79ef5 in ucl_parse_key /src/libucl/src/ucl_parser.c:1447:10
    #5 0x55f56dc79ef5 in ucl_state_machine /src/libucl/src/ucl_parser.c:2526:9
    #6 0x55f56dc78add in ucl_parser_add_chunk_full /src/libucl/src/ucl_parser.c:3052:12
    #7 0x55f56dc72549 in LLVMFuzzerTestOneInput /src/libucl/tests/fuzzers/ucl_add_string_fuzzer.c:17:2
    #8 0x55f56db0fe4d in fuzzer::Fuzzer::ExecuteCallback(unsigned char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:619:13
    #9 0x55f56dafabc2 in fuzzer::RunOneTest(fuzzer::Fuzzer*, char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:329:6
    #10 0x55f56db00a90 in fuzzer::FuzzerDriver(int*, char***, int (*)(unsigned char const*, unsigned long)) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:865:9
    #11 0x55f56db2c5c2 in main /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerMain.cpp:20:10
    #12 0x7f793e958082 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x24082) (BuildId: 5792732f783158c66fb4f3756458ca24e46e827d)

DEDUP_TOKEN: __interceptor_malloc--ucl_create_err--ucl_set_err
Indirect leak of 8800 byte(s) in 100 object(s) allocated from:
    #0 0x55f56dc2e7a4 in malloc /src/llvm-project/compiler-rt/lib/asan/asan_malloc_linux.cpp:67:3
    #1 0x55f56dc7584f in ucl_parser_register_macro /src/libucl/src/ucl_parser.c:2848:8
    #2 0x55f56dc75670 in ucl_parser_new /src/libucl/src/ucl_parser.c:2793:2
    #3 0x55f56dc72538 in LLVMFuzzerTestOneInput /src/libucl/tests/fuzzers/ucl_add_string_fuzzer.c:15:18
    #4 0x55f56db0fe4d in fuzzer::Fuzzer::ExecuteCallback(unsigned char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:619:13
    #5 0x55f56dafabc2 in fuzzer::RunOneTest(fuzzer::Fuzzer*, char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:329:6
    #6 0x55f56db00a90 in fuzzer::FuzzerDriver(int*, char***, int (*)(unsigned char const*, unsigned long)) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:865:9
    #7 0x55f56db2c5c2 in main /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerMain.cpp:20:10
    #8 0x7f793e958082 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x24082) (BuildId: 5792732f783158c66fb4f3756458ca24e46e827d)

DEDUP_TOKEN: __interceptor_malloc--ucl_parser_register_macro--ucl_parser_new
Indirect leak of 8800 byte(s) in 100 object(s) allocated from:
    #0 0x55f56dc2e7a4 in malloc /src/llvm-project/compiler-rt/lib/asan/asan_malloc_linux.cpp:67:3
    #1 0x55f56dc7584f in ucl_parser_register_macro /src/libucl/src/ucl_parser.c:2848:8
    #2 0x55f56dc756b2 in ucl_parser_new /src/libucl/src/ucl_parser.c:2795:2
    #3 0x55f56dc72538 in LLVMFuzzerTestOneInput /src/libucl/tests/fuzzers/ucl_add_string_fuzzer.c:15:18
    #4 0x55f56db0fe4d in fuzzer::Fuzzer::ExecuteCallback(unsigned char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:619:13
    #5 0x55f56dafabc2 in fuzzer::RunOneTest(fuzzer::Fuzzer*, char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:329:6
    #6 0x55f56db00a90 in fuzzer::FuzzerDriver(int*, char***, int (*)(unsigned char const*, unsigned long)) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:865:9
    #7 0x55f56db2c5c2 in main /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerMain.cpp:20:10
    #8 0x7f793e958082 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x24082) (BuildId: 5792732f783158c66fb4f3756458ca24e46e827d)

DEDUP_TOKEN: __interceptor_malloc--ucl_parser_register_macro--ucl_parser_new
Indirect leak of 8800 byte(s) in 100 object(s) allocated from:
    #0 0x55f56dc2e7a4 in malloc /src/llvm-project/compiler-rt/lib/asan/asan_malloc_linux.cpp:67:3
    #1 0x55f56dc7584f in ucl_parser_register_macro /src/libucl/src/ucl_parser.c:2848:8
    #2 0x55f56dc75691 in ucl_parser_new /src/libucl/src/ucl_parser.c:2794:2
    #3 0x55f56dc72538 in LLVMFuzzerTestOneInput /src/libucl/tests/fuzzers/ucl_add_string_fuzzer.c:15:18
    #4 0x55f56db0fe4d in fuzzer::Fuzzer::ExecuteCallback(unsigned char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:619:13
    #5 0x55f56dafabc2 in fuzzer::RunOneTest(fuzzer::Fuzzer*, char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:329:6
    #6 0x55f56db00a90 in fuzzer::FuzzerDriver(int*, char***, int (*)(unsigned char const*, unsigned long)) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:865:9
    #7 0x55f56db2c5c2 in main /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerMain.cpp:20:10
    #8 0x7f793e958082 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x24082) (BuildId: 5792732f783158c66fb4f3756458ca24e46e827d)

DEDUP_TOKEN: __interceptor_malloc--ucl_parser_register_macro--ucl_parser_new
Indirect leak of 8800 byte(s) in 100 object(s) allocated from:
    #0 0x55f56dc2e7a4 in malloc /src/llvm-project/compiler-rt/lib/asan/asan_malloc_linux.cpp:67:3
    #1 0x55f56dc7584f in ucl_parser_register_macro /src/libucl/src/ucl_parser.c:2848:8
    #2 0x55f56dc7562e in ucl_parser_new /src/libucl/src/ucl_parser.c:2791:2
    #3 0x55f56dc72538 in LLVMFuzzerTestOneInput /src/libucl/tests/fuzzers/ucl_add_string_fuzzer.c:15:18
    #4 0x55f56db0fe4d in fuzzer::Fuzzer::ExecuteCallback(unsigned char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:619:13
    #5 0x55f56dafabc2 in fuzzer::RunOneTest(fuzzer::Fuzzer*, char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:329:6
    #6 0x55f56db00a90 in fuzzer::FuzzerDriver(int*, char***, int (*)(unsigned char const*, unsigned long)) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:865:9
    #7 0x55f56db2c5c2 in main /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerMain.cpp:20:10
    #8 0x7f793e958082 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x24082) (BuildId: 5792732f783158c66fb4f3756458ca24e46e827d)

DEDUP_TOKEN: __interceptor_malloc--ucl_parser_register_macro--ucl_parser_new
Indirect leak of 8800 byte(s) in 100 object(s) allocated from:
    #0 0x55f56dc2e7a4 in malloc /src/llvm-project/compiler-rt/lib/asan/asan_malloc_linux.cpp:67:3
    #1 0x55f56dc7584f in ucl_parser_register_macro /src/libucl/src/ucl_parser.c:2848:8
    #2 0x55f56dc7564f in ucl_parser_new /src/libucl/src/ucl_parser.c:2792:2
    #3 0x55f56dc72538 in LLVMFuzzerTestOneInput /src/libucl/tests/fuzzers/ucl_add_string_fuzzer.c:15:18
    #4 0x55f56db0fe4d in fuzzer::Fuzzer::ExecuteCallback(unsigned char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:619:13
    #5 0x55f56dafabc2 in fuzzer::RunOneTest(fuzzer::Fuzzer*, char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:329:6
    #6 0x55f56db00a90 in fuzzer::FuzzerDriver(int*, char***, int (*)(unsigned char const*, unsigned long)) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:865:9
    #7 0x55f56db2c5c2 in main /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerMain.cpp:20:10
    #8 0x7f793e958082 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x24082) (BuildId: 5792732f783158c66fb4f3756458ca24e46e827d)

DEDUP_TOKEN: __interceptor_malloc--ucl_parser_register_macro--ucl_parser_new
Indirect leak of 8800 byte(s) in 100 object(s) allocated from:
    #0 0x55f56dc2e7a4 in malloc /src/llvm-project/compiler-rt/lib/asan/asan_malloc_linux.cpp:67:3
    #1 0x55f56dc766bf in ucl_parser_register_context_macro /src/libucl/src/ucl_parser.c:2875:8
    #2 0x55f56dc756d3 in ucl_parser_new /src/libucl/src/ucl_parser.c:2796:2
    #3 0x55f56dc72538 in LLVMFuzzerTestOneInput /src/libucl/tests/fuzzers/ucl_add_string_fuzzer.c:15:18
    #4 0x55f56db0fe4d in fuzzer::Fuzzer::ExecuteCallback(unsigned char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:619:13
    #5 0x55f56dafabc2 in fuzzer::RunOneTest(fuzzer::Fuzzer*, char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:329:6
    #6 0x55f56db00a90 in fuzzer::FuzzerDriver(int*, char***, int (*)(unsigned char const*, unsigned long)) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:865:9
    #7 0x55f56db2c5c2 in main /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerMain.cpp:20:10
    #8 0x7f793e958082 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x24082) (BuildId: 5792732f783158c66fb4f3756458ca24e46e827d)

DEDUP_TOKEN: __interceptor_malloc--ucl_parser_register_context_macro--ucl_parser_new
Indirect leak of 8000 byte(s) in 100 object(s) allocated from:
    #0 0x55f56dc2e7a4 in malloc /src/llvm-project/compiler-rt/lib/asan/asan_malloc_linux.cpp:67:3
    #1 0x55f56dc7834c in ucl_parser_add_chunk_full /src/libucl/src/ucl_parser.c:2973:11
    #2 0x55f56dc72549 in LLVMFuzzerTestOneInput /src/libucl/tests/fuzzers/ucl_add_string_fuzzer.c:17:2
    #3 0x55f56db0fe4d in fuzzer::Fuzzer::ExecuteCallback(unsigned char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:619:13
    #4 0x55f56dafabc2 in fuzzer::RunOneTest(fuzzer::Fuzzer*, char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:329:6
    #5 0x55f56db00a90 in fuzzer::FuzzerDriver(int*, char***, int (*)(unsigned char const*, unsigned long)) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:865:9
    #6 0x55f56db2c5c2 in main /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerMain.cpp:20:10
    #7 0x7f793e958082 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x24082) (BuildId: 5792732f783158c66fb4f3756458ca24e46e827d)

DEDUP_TOKEN: __interceptor_malloc--ucl_parser_add_chunk_full--LLVMFuzzerTestOneInput
Indirect leak of 6400 byte(s) in 100 object(s) allocated from:
    #0 0x55f56dc2e7a4 in malloc /src/llvm-project/compiler-rt/lib/asan/asan_malloc_linux.cpp:67:3
    #1 0x55f56dc9d5ae in ucl_object_new_full /src/libucl/src/ucl_util.c:3014:9
    #2 0x55f56dc89f26 in ucl_parser_add_container /src/libucl/src/ucl_parser.c:667:10
    #3 0x55f56dc7ecdc in ucl_state_machine /src/libucl/src/ucl_parser.c
    #4 0x55f56dc78add in ucl_parser_add_chunk_full /src/libucl/src/ucl_parser.c:3052:12
    #5 0x55f56dc72549 in LLVMFuzzerTestOneInput /src/libucl/tests/fuzzers/ucl_add_string_fuzzer.c:17:2
    #6 0x55f56db0fe4d in fuzzer::Fuzzer::ExecuteCallback(unsigned char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:619:13
    #7 0x55f56dafabc2 in fuzzer::RunOneTest(fuzzer::Fuzzer*, char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:329:6
    #8 0x55f56db00a90 in fuzzer::FuzzerDriver(int*, char***, int (*)(unsigned char const*, unsigned long)) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:865:9
    #9 0x55f56db2c5c2 in main /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerMain.cpp:20:10
    #10 0x7f793e958082 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x24082) (BuildId: 5792732f783158c66fb4f3756458ca24e46e827d)

DEDUP_TOKEN: __interceptor_malloc--ucl_object_new_full--ucl_parser_add_container
Indirect leak of 6400 byte(s) in 100 object(s) allocated from:
    #0 0x55f56dc2e7a4 in malloc /src/llvm-project/compiler-rt/lib/asan/asan_malloc_linux.cpp:67:3
    #1 0x55f56dc75c94 in ucl_parser_register_macro /src/libucl/src/ucl_parser.c:2861:2
    #2 0x55f56dc7562e in ucl_parser_new /src/libucl/src/ucl_parser.c:2791:2
    #3 0x55f56dc72538 in LLVMFuzzerTestOneInput /src/libucl/tests/fuzzers/ucl_add_string_fuzzer.c:15:18
    #4 0x55f56db0fe4d in fuzzer::Fuzzer::ExecuteCallback(unsigned char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:619:13
    #5 0x55f56dafabc2 in fuzzer::RunOneTest(fuzzer::Fuzzer*, char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:329:6
    #6 0x55f56db00a90 in fuzzer::FuzzerDriver(int*, char***, int (*)(unsigned char const*, unsigned long)) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:865:9
    #7 0x55f56db2c5c2 in main /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerMain.cpp:20:10
    #8 0x7f793e958082 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x24082) (BuildId: 5792732f783158c66fb4f3756458ca24e46e827d)

DEDUP_TOKEN: __interceptor_malloc--ucl_parser_register_macro--ucl_parser_new
Indirect leak of 4800 byte(s) in 100 object(s) allocated from:
    #0 0x55f56dc2e7a4 in malloc /src/llvm-project/compiler-rt/lib/asan/asan_malloc_linux.cpp:67:3
    #1 0x55f56dc77db8 in ucl_parser_register_variable /src/libucl/src/ucl_parser.c:2927:10
    #2 0x55f56dc979ec in ucl_parser_set_filevars /src/libucl/src/ucl_util.c
    #3 0x55f56dc757cc in ucl_parser_new /src/libucl/src/ucl_parser.c:2807:3
    #4 0x55f56dc72538 in LLVMFuzzerTestOneInput /src/libucl/tests/fuzzers/ucl_add_string_fuzzer.c:15:18
    #5 0x55f56db0fe4d in fuzzer::Fuzzer::ExecuteCallback(unsigned char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:619:13
    #6 0x55f56dafabc2 in fuzzer::RunOneTest(fuzzer::Fuzzer*, char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:329:6
    #7 0x55f56db00a90 in fuzzer::FuzzerDriver(int*, char***, int (*)(unsigned char const*, unsigned long)) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:865:9
    #8 0x55f56db2c5c2 in main /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerMain.cpp:20:10
    #9 0x7f793e958082 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x24082) (BuildId: 5792732f783158c66fb4f3756458ca24e46e827d)

DEDUP_TOKEN: __interceptor_malloc--ucl_parser_register_variable--ucl_parser_set_filevars
Indirect leak of 4800 byte(s) in 100 object(s) allocated from:
    #0 0x55f56dc2e7a4 in malloc /src/llvm-project/compiler-rt/lib/asan/asan_malloc_linux.cpp:67:3
    #1 0x55f56dc77db8 in ucl_parser_register_variable /src/libucl/src/ucl_parser.c:2927:10
    #2 0x55f56dc97886 in ucl_parser_set_filevars /src/libucl/src/ucl_util.c:2011:3
    #3 0x55f56dc757cc in ucl_parser_new /src/libucl/src/ucl_parser.c:2807:3
    #4 0x55f56dc72538 in LLVMFuzzerTestOneInput /src/libucl/tests/fuzzers/ucl_add_string_fuzzer.c:15:18
    #5 0x55f56db0fe4d in fuzzer::Fuzzer::ExecuteCallback(unsigned char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:619:13
    #6 0x55f56dafabc2 in fuzzer::RunOneTest(fuzzer::Fuzzer*, char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:329:6
    #7 0x55f56db00a90 in fuzzer::FuzzerDriver(int*, char***, int (*)(unsigned char const*, unsigned long)) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:865:9
    #8 0x55f56db2c5c2 in main /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerMain.cpp:20:10
    #9 0x7f793e958082 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x24082) (BuildId: 5792732f783158c66fb4f3756458ca24e46e827d)

DEDUP_TOKEN: __interceptor_malloc--ucl_parser_register_variable--ucl_parser_set_filevars
Indirect leak of 4000 byte(s) in 100 object(s) allocated from:
    #0 0x55f56dc2e969 in calloc /src/llvm-project/compiler-rt/lib/asan/asan_malloc_linux.cpp:74:3
    #1 0x55f56dcb02ca in ucl_hash_create /src/libucl/src/ucl_hash.c
    #2 0x55f56dc8a0d8 in ucl_parser_add_container /src/libucl/src/ucl_parser.c:686:21
    #3 0x55f56dc7ecdc in ucl_state_machine /src/libucl/src/ucl_parser.c
    #4 0x55f56dc78add in ucl_parser_add_chunk_full /src/libucl/src/ucl_parser.c:3052:12
    #5 0x55f56dc72549 in LLVMFuzzerTestOneInput /src/libucl/tests/fuzzers/ucl_add_string_fuzzer.c:17:2
    #6 0x55f56db0fe4d in fuzzer::Fuzzer::ExecuteCallback(unsigned char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:619:13
    #7 0x55f56dafabc2 in fuzzer::RunOneTest(fuzzer::Fuzzer*, char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:329:6
    #8 0x55f56db00a90 in fuzzer::FuzzerDriver(int*, char***, int (*)(unsigned char const*, unsigned long)) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:865:9
    #9 0x55f56db2c5c2 in main /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerMain.cpp:20:10
    #10 0x7f793e958082 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x24082) (BuildId: 5792732f783158c66fb4f3756458ca24e46e827d)

DEDUP_TOKEN: __interceptor_calloc--ucl_hash_create--ucl_parser_add_container
Indirect leak of 3200 byte(s) in 100 object(s) allocated from:
    #0 0x55f56dc2e969 in calloc /src/llvm-project/compiler-rt/lib/asan/asan_malloc_linux.cpp:74:3
    #1 0x55f56dc78d7a in ucl_create_err /src/libucl/src/./ucl_internal.h:381:3
    #2 0x55f56dc8d019 in ucl_set_err /src/libucl/src/ucl_parser.c:90:3
    #3 0x55f56dc8d019 in ucl_lex_json_string /src/libucl/src/ucl_parser.c:1111:5
    #4 0x55f56dc79ef5 in ucl_parse_key /src/libucl/src/ucl_parser.c:1447:10
    #5 0x55f56dc79ef5 in ucl_state_machine /src/libucl/src/ucl_parser.c:2526:9
    #6 0x55f56dc78add in ucl_parser_add_chunk_full /src/libucl/src/ucl_parser.c:3052:12
    #7 0x55f56dc72549 in LLVMFuzzerTestOneInput /src/libucl/tests/fuzzers/ucl_add_string_fuzzer.c:17:2
    #8 0x55f56db0fe4d in fuzzer::Fuzzer::ExecuteCallback(unsigned char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:619:13
    #9 0x55f56dafabc2 in fuzzer::RunOneTest(fuzzer::Fuzzer*, char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:329:6
    #10 0x55f56db00a90 in fuzzer::FuzzerDriver(int*, char***, int (*)(unsigned char const*, unsigned long)) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:865:9
    #11 0x55f56db2c5c2 in main /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerMain.cpp:20:10
    #12 0x7f793e958082 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x24082) (BuildId: 5792732f783158c66fb4f3756458ca24e46e827d)

DEDUP_TOKEN: __interceptor_calloc--ucl_create_err--ucl_set_err
Indirect leak of 3200 byte(s) in 100 object(s) allocated from:
    #0 0x55f56dc2e7a4 in malloc /src/llvm-project/compiler-rt/lib/asan/asan_malloc_linux.cpp:67:3
    #1 0x55f56dc8a121 in ucl_parser_add_container /src/libucl/src/ucl_parser.c:696:7
    #2 0x55f56dc7ecdc in ucl_state_machine /src/libucl/src/ucl_parser.c
    #3 0x55f56dc78add in ucl_parser_add_chunk_full /src/libucl/src/ucl_parser.c:3052:12
    #4 0x55f56dc72549 in LLVMFuzzerTestOneInput /src/libucl/tests/fuzzers/ucl_add_string_fuzzer.c:17:2
    #5 0x55f56db0fe4d in fuzzer::Fuzzer::ExecuteCallback(unsigned char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:619:13
    #6 0x55f56dafabc2 in fuzzer::RunOneTest(fuzzer::Fuzzer*, char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:329:6
    #7 0x55f56db00a90 in fuzzer::FuzzerDriver(int*, char***, int (*)(unsigned char const*, unsigned long)) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:865:9
    #8 0x55f56db2c5c2 in main /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerMain.cpp:20:10
    #9 0x7f793e958082 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x24082) (BuildId: 5792732f783158c66fb4f3756458ca24e46e827d)

DEDUP_TOKEN: __interceptor_malloc--ucl_parser_add_container--ucl_state_machine
Indirect leak of 2400 byte(s) in 100 object(s) allocated from:
    #0 0x55f56dc2e7a4 in malloc /src/llvm-project/compiler-rt/lib/asan/asan_malloc_linux.cpp:67:3
    #1 0x55f56dcb027a in ucl_hash_create /src/libucl/src/ucl_hash.c:237:8
    #2 0x55f56dc8a0d8 in ucl_parser_add_container /src/libucl/src/ucl_parser.c:686:21
    #3 0x55f56dc7ecdc in ucl_state_machine /src/libucl/src/ucl_parser.c
    #4 0x55f56dc78add in ucl_parser_add_chunk_full /src/libucl/src/ucl_parser.c:3052:12
    #5 0x55f56dc72549 in LLVMFuzzerTestOneInput /src/libucl/tests/fuzzers/ucl_add_string_fuzzer.c:17:2
    #6 0x55f56db0fe4d in fuzzer::Fuzzer::ExecuteCallback(unsigned char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:619:13
    #7 0x55f56dafabc2 in fuzzer::RunOneTest(fuzzer::Fuzzer*, char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:329:6
    #8 0x55f56db00a90 in fuzzer::FuzzerDriver(int*, char***, int (*)(unsigned char const*, unsigned long)) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:865:9
    #9 0x55f56db2c5c2 in main /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerMain.cpp:20:10
    #10 0x7f793e958082 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x24082) (BuildId: 5792732f783158c66fb4f3756458ca24e46e827d)

DEDUP_TOKEN: __interceptor_malloc--ucl_hash_create--ucl_parser_add_container
Indirect leak of 1200 byte(s) in 100 object(s) allocated from:
    #0 0x55f56dc14e2a in strdup /src/llvm-project/compiler-rt/lib/asan/asan_interceptors.cpp:596:3
    #1 0x55f56dc7588e in ucl_parser_register_macro /src/libucl/src/ucl_parser.c:2855:14
    #2 0x55f56dc7564f in ucl_parser_new /src/libucl/src/ucl_parser.c:2792:2
    #3 0x55f56dc72538 in LLVMFuzzerTestOneInput /src/libucl/tests/fuzzers/ucl_add_string_fuzzer.c:15:18
    #4 0x55f56db0fe4d in fuzzer::Fuzzer::ExecuteCallback(unsigned char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:619:13
    #5 0x55f56dafabc2 in fuzzer::RunOneTest(fuzzer::Fuzzer*, char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:329:6
    #6 0x55f56db00a90 in fuzzer::FuzzerDriver(int*, char***, int (*)(unsigned char const*, unsigned long)) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:865:9
    #7 0x55f56db2c5c2 in main /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerMain.cpp:20:10
    #8 0x7f793e958082 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x24082) (BuildId: 5792732f783158c66fb4f3756458ca24e46e827d)

DEDUP_TOKEN: ___interceptor_strdup--ucl_parser_register_macro--ucl_parser_new
Indirect leak of 900 byte(s) in 100 object(s) allocated from:
    #0 0x55f56dc14e2a in strdup /src/llvm-project/compiler-rt/lib/asan/asan_interceptors.cpp:596:3
    #1 0x55f56dc77ddb in ucl_parser_register_variable /src/libucl/src/ucl_parser.c:2932:15
    #2 0x55f56dc97886 in ucl_parser_set_filevars /src/libucl/src/ucl_util.c:2011:3
    #3 0x55f56dc757cc in ucl_parser_new /src/libucl/src/ucl_parser.c:2807:3
    #4 0x55f56dc72538 in LLVMFuzzerTestOneInput /src/libucl/tests/fuzzers/ucl_add_string_fuzzer.c:15:18
    #5 0x55f56db0fe4d in fuzzer::Fuzzer::ExecuteCallback(unsigned char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:619:13
    #6 0x55f56dafabc2 in fuzzer::RunOneTest(fuzzer::Fuzzer*, char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:329:6
    #7 0x55f56db00a90 in fuzzer::FuzzerDriver(int*, char***, int (*)(unsigned char const*, unsigned long)) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:865:9
    #8 0x55f56db2c5c2 in main /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerMain.cpp:20:10
    #9 0x7f793e958082 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x24082) (BuildId: 5792732f783158c66fb4f3756458ca24e46e827d)

DEDUP_TOKEN: ___interceptor_strdup--ucl_parser_register_variable--ucl_parser_set_filevars
Indirect leak of 900 byte(s) in 100 object(s) allocated from:
    #0 0x55f56dc14e2a in strdup /src/llvm-project/compiler-rt/lib/asan/asan_interceptors.cpp:596:3
    #1 0x55f56dc7588e in ucl_parser_register_macro /src/libucl/src/ucl_parser.c:2855:14
    #2 0x55f56dc75670 in ucl_parser_new /src/libucl/src/ucl_parser.c:2793:2
    #3 0x55f56dc72538 in LLVMFuzzerTestOneInput /src/libucl/tests/fuzzers/ucl_add_string_fuzzer.c:15:18
    #4 0x55f56db0fe4d in fuzzer::Fuzzer::ExecuteCallback(unsigned char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:619:13
    #5 0x55f56dafabc2 in fuzzer::RunOneTest(fuzzer::Fuzzer*, char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:329:6
    #6 0x55f56db00a90 in fuzzer::FuzzerDriver(int*, char***, int (*)(unsigned char const*, unsigned long)) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:865:9
    #7 0x55f56db2c5c2 in main /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerMain.cpp:20:10
    #8 0x7f793e958082 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x24082) (BuildId: 5792732f783158c66fb4f3756458ca24e46e827d)

DEDUP_TOKEN: ___interceptor_strdup--ucl_parser_register_macro--ucl_parser_new
Indirect leak of 900 byte(s) in 100 object(s) allocated from:
    #0 0x55f56dc14e2a in strdup /src/llvm-project/compiler-rt/lib/asan/asan_interceptors.cpp:596:3
    #1 0x55f56dc7588e in ucl_parser_register_macro /src/libucl/src/ucl_parser.c:2855:14
    #2 0x55f56dc75691 in ucl_parser_new /src/libucl/src/ucl_parser.c:2794:2
    #3 0x55f56dc72538 in LLVMFuzzerTestOneInput /src/libucl/tests/fuzzers/ucl_add_string_fuzzer.c:15:18
    #4 0x55f56db0fe4d in fuzzer::Fuzzer::ExecuteCallback(unsigned char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:619:13
    #5 0x55f56dafabc2 in fuzzer::RunOneTest(fuzzer::Fuzzer*, char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:329:6
    #6 0x55f56db00a90 in fuzzer::FuzzerDriver(int*, char***, int (*)(unsigned char const*, unsigned long)) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:865:9
    #7 0x55f56db2c5c2 in main /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerMain.cpp:20:10
    #8 0x7f793e958082 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x24082) (BuildId: 5792732f783158c66fb4f3756458ca24e46e827d)

DEDUP_TOKEN: ___interceptor_strdup--ucl_parser_register_macro--ucl_parser_new
Indirect leak of 800 byte(s) in 100 object(s) allocated from:
    #0 0x55f56dc14e2a in strdup /src/llvm-project/compiler-rt/lib/asan/asan_interceptors.cpp:596:3
    #1 0x55f56dc766fe in ucl_parser_register_context_macro /src/libucl/src/ucl_parser.c:2882:14
    #2 0x55f56dc756d3 in ucl_parser_new /src/libucl/src/ucl_parser.c:2796:2
    #3 0x55f56dc72538 in LLVMFuzzerTestOneInput /src/libucl/tests/fuzzers/ucl_add_string_fuzzer.c:15:18
    #4 0x55f56db0fe4d in fuzzer::Fuzzer::ExecuteCallback(unsigned char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:619:13
    #5 0x55f56dafabc2 in fuzzer::RunOneTest(fuzzer::Fuzzer*, char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:329:6
    #6 0x55f56db00a90 in fuzzer::FuzzerDriver(int*, char***, int (*)(unsigned char const*, unsigned long)) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:865:9
    #7 0x55f56db2c5c2 in main /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerMain.cpp:20:10
    #8 0x7f793e958082 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x24082) (BuildId: 5792732f783158c66fb4f3756458ca24e46e827d)

DEDUP_TOKEN: ___interceptor_strdup--ucl_parser_register_context_macro--ucl_parser_new
Indirect leak of 800 byte(s) in 100 object(s) allocated from:
    #0 0x55f56dc14e2a in strdup /src/llvm-project/compiler-rt/lib/asan/asan_interceptors.cpp:596:3
    #1 0x55f56dc7588e in ucl_parser_register_macro /src/libucl/src/ucl_parser.c:2855:14
    #2 0x55f56dc7562e in ucl_parser_new /src/libucl/src/ucl_parser.c:2791:2
    #3 0x55f56dc72538 in LLVMFuzzerTestOneInput /src/libucl/tests/fuzzers/ucl_add_string_fuzzer.c:15:18
    #4 0x55f56db0fe4d in fuzzer::Fuzzer::ExecuteCallback(unsigned char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:619:13
    #5 0x55f56dafabc2 in fuzzer::RunOneTest(fuzzer::Fuzzer*, char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:329:6
    #6 0x55f56db00a90 in fuzzer::FuzzerDriver(int*, char***, int (*)(unsigned char const*, unsigned long)) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:865:9
    #7 0x55f56db2c5c2 in main /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerMain.cpp:20:10
    #8 0x7f793e958082 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x24082) (BuildId: 5792732f783158c66fb4f3756458ca24e46e827d)

DEDUP_TOKEN: ___interceptor_strdup--ucl_parser_register_macro--ucl_parser_new
Indirect leak of 700 byte(s) in 100 object(s) allocated from:
    #0 0x55f56dc14e2a in strdup /src/llvm-project/compiler-rt/lib/asan/asan_interceptors.cpp:596:3
    #1 0x55f56dc77ddb in ucl_parser_register_variable /src/libucl/src/ucl_parser.c:2932:15
    #2 0x55f56dc979ec in ucl_parser_set_filevars /src/libucl/src/ucl_util.c
    #3 0x55f56dc757cc in ucl_parser_new /src/libucl/src/ucl_parser.c:2807:3
    #4 0x55f56dc72538 in LLVMFuzzerTestOneInput /src/libucl/tests/fuzzers/ucl_add_string_fuzzer.c:15:18
    #5 0x55f56db0fe4d in fuzzer::Fuzzer::ExecuteCallback(unsigned char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:619:13
    #6 0x55f56dafabc2 in fuzzer::RunOneTest(fuzzer::Fuzzer*, char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:329:6
    #7 0x55f56db00a90 in fuzzer::FuzzerDriver(int*, char***, int (*)(unsigned char const*, unsigned long)) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:865:9
    #8 0x55f56db2c5c2 in main /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerMain.cpp:20:10
    #9 0x7f793e958082 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x24082) (BuildId: 5792732f783158c66fb4f3756458ca24e46e827d)

DEDUP_TOKEN: ___interceptor_strdup--ucl_parser_register_variable--ucl_parser_set_filevars
Indirect leak of 600 byte(s) in 100 object(s) allocated from:
    #0 0x55f56dc14e2a in strdup /src/llvm-project/compiler-rt/lib/asan/asan_interceptors.cpp:596:3
    #1 0x55f56dc77e22 in ucl_parser_register_variable /src/libucl/src/ucl_parser.c:2934:17
    #2 0x55f56dc97886 in ucl_parser_set_filevars /src/libucl/src/ucl_util.c:2011:3
    #3 0x55f56dc757cc in ucl_parser_new /src/libucl/src/ucl_parser.c:2807:3
    #4 0x55f56dc72538 in LLVMFuzzerTestOneInput /src/libucl/tests/fuzzers/ucl_add_string_fuzzer.c:15:18
    #5 0x55f56db0fe4d in fuzzer::Fuzzer::ExecuteCallback(unsigned char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:619:13
    #6 0x55f56dafabc2 in fuzzer::RunOneTest(fuzzer::Fuzzer*, char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:329:6
    #7 0x55f56db00a90 in fuzzer::FuzzerDriver(int*, char***, int (*)(unsigned char const*, unsigned long)) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:865:9
    #8 0x55f56db2c5c2 in main /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerMain.cpp:20:10
    #9 0x7f793e958082 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x24082) (BuildId: 5792732f783158c66fb4f3756458ca24e46e827d)

DEDUP_TOKEN: ___interceptor_strdup--ucl_parser_register_variable--ucl_parser_set_filevars
Indirect leak of 500 byte(s) in 100 object(s) allocated from:
    #0 0x55f56dc14e2a in strdup /src/llvm-project/compiler-rt/lib/asan/asan_interceptors.cpp:596:3
    #1 0x55f56dc77e22 in ucl_parser_register_variable /src/libucl/src/ucl_parser.c:2934:17
    #2 0x55f56dc979ec in ucl_parser_set_filevars /src/libucl/src/ucl_util.c
    #3 0x55f56dc757cc in ucl_parser_new /src/libucl/src/ucl_parser.c:2807:3
    #4 0x55f56dc72538 in LLVMFuzzerTestOneInput /src/libucl/tests/fuzzers/ucl_add_string_fuzzer.c:15:18
    #5 0x55f56db0fe4d in fuzzer::Fuzzer::ExecuteCallback(unsigned char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:619:13
    #6 0x55f56dafabc2 in fuzzer::RunOneTest(fuzzer::Fuzzer*, char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:329:6
    #7 0x55f56db00a90 in fuzzer::FuzzerDriver(int*, char***, int (*)(unsigned char const*, unsigned long)) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:865:9
    #8 0x55f56db2c5c2 in main /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerMain.cpp:20:10
    #9 0x7f793e958082 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x24082) (BuildId: 5792732f783158c66fb4f3756458ca24e46e827d)

DEDUP_TOKEN: ___interceptor_strdup--ucl_parser_register_variable--ucl_parser_set_filevars
Indirect leak of 500 byte(s) in 100 object(s) allocated from:
    #0 0x55f56dc14e2a in strdup /src/llvm-project/compiler-rt/lib/asan/asan_interceptors.cpp:596:3
    #1 0x55f56dc7588e in ucl_parser_register_macro /src/libucl/src/ucl_parser.c:2855:14
    #2 0x55f56dc756b2 in ucl_parser_new /src/libucl/src/ucl_parser.c:2795:2
    #3 0x55f56dc72538 in LLVMFuzzerTestOneInput /src/libucl/tests/fuzzers/ucl_add_string_fuzzer.c:15:18
    #4 0x55f56db0fe4d in fuzzer::Fuzzer::ExecuteCallback(unsigned char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:619:13
    #5 0x55f56dafabc2 in fuzzer::RunOneTest(fuzzer::Fuzzer*, char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:329:6
    #6 0x55f56db00a90 in fuzzer::FuzzerDriver(int*, char***, int (*)(unsigned char const*, unsigned long)) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:865:9
    #7 0x55f56db2c5c2 in main /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerMain.cpp:20:10
    #8 0x7f793e958082 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x24082) (BuildId: 5792732f783158c66fb4f3756458ca24e46e827d)

DEDUP_TOKEN: ___interceptor_strdup--ucl_parser_register_macro--ucl_parser_new
SUMMARY: AddressSanitizer: 184600 byte(s) leaked in 2800 allocation(s).

Affected version(s):

  • libucl version 0.9.2 (stable release) (2e23c2b)
  • Platform: linux/amd64, build with AddressSanitizer.

ucl_add_string_fuzzer_18191.zip

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions