Skip to content

LeakSanitizer: detected memory leaks #7

@dennisrazumovsky

Description

@dennisrazumovsky

Thank you for you hard work guys. That is nice and useful library but seems there are memory leaks detected.

How to repeat:

  1. Install LLVM for sanitizer
sudo apt -y install llvm
  1. Build with sanitizer
git clone https://github.com/semitrivial/csv_parser.git
cd csv_parser
clang -fsanitize=address -g -O0 -DDEBUG -Wall csv.c split.c fread_csv_line.c tests/test.c -o test

3, Run with sanitizer

ASAN_OPTIONS=symbolize=1 ASAN_SYMBOLIZER_PATH=/usr/bin/llvm-symbolizer ./test
unning test_parse_csv...Success.
Running test_split_on_unescaped_newlines...Success.
Running test_fread_csv_line...Success.

=================================================================
==115538==ERROR: LeakSanitizer: detected memory leaks

Direct leak of 26 byte(s) in 1 object(s) allocated from:
    #0 0x562f0af00b53 in strdup (/home/user/examples/csv_parser/test+0x8cb53) (BuildId: 6dbba5a4b3656ad04924963f1dc4003f03e58507)
    #1 0x562f0af524be in fread_csv_line /home/user/examples/csv_parser/fread_csv_line.c:106:12
    #2 0x562f0af52ec2 in test_fread_csv_line /home/user/examples/csv_parser/tests/test.c:99:16
    #3 0x562f0af52554 in run_test /home/user/examples/csv_parser/tests/test.c:12:12
    #4 0x562f0af525cc in main /home/user/examples/csv_parser/tests/test.c:25:3
    #5 0x7f4e037c1d8f in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16

Direct leak of 18 byte(s) in 1 object(s) allocated from:
    #0 0x562f0af00b53 in strdup (/home/user/examples/csv_parser/test+0x8cb53) (BuildId: 6dbba5a4b3656ad04924963f1dc4003f03e58507)
    #1 0x562f0af524be in fread_csv_line /home/user/examples/csv_parser/fread_csv_line.c:106:12
    #2 0x562f0af53060 in test_fread_csv_line /home/user/examples/csv_parser/tests/test.c:108:16
    #3 0x562f0af52554 in run_test /home/user/examples/csv_parser/tests/test.c:12:12
    #4 0x562f0af525cc in main /home/user/examples/csv_parser/tests/test.c:25:3
    #5 0x7f4e037c1d8f in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16

Direct leak of 16 byte(s) in 1 object(s) allocated from:
    #0 0x562f0af00b53 in strdup (/home/user/examples/csv_parser/test+0x8cb53) (BuildId: 6dbba5a4b3656ad04924963f1dc4003f03e58507)
    #1 0x562f0af524be in fread_csv_line /home/user/examples/csv_parser/fread_csv_line.c:106:12
    #2 0x562f0af52fd6 in test_fread_csv_line /home/user/examples/csv_parser/tests/test.c:105:16
    #3 0x562f0af52554 in run_test /home/user/examples/csv_parser/tests/test.c:12:12
    #4 0x562f0af525cc in main /home/user/examples/csv_parser/tests/test.c:25:3
    #5 0x7f4e037c1d8f in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16

Direct leak of 16 byte(s) in 1 object(s) allocated from:
    #0 0x562f0af00b53 in strdup (/home/user/examples/csv_parser/test+0x8cb53) (BuildId: 6dbba5a4b3656ad04924963f1dc4003f03e58507)
    #1 0x562f0af524be in fread_csv_line /home/user/examples/csv_parser/fread_csv_line.c:106:12
    #2 0x562f0af52e38 in test_fread_csv_line /home/user/examples/csv_parser/tests/test.c:96:16
    #3 0x562f0af52554 in run_test /home/user/examples/csv_parser/tests/test.c:12:12
    #4 0x562f0af525cc in main /home/user/examples/csv_parser/tests/test.c:25:3
    #5 0x7f4e037c1d8f in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16

Direct leak of 16 byte(s) in 1 object(s) allocated from:
    #0 0x562f0af00b53 in strdup (/home/user/examples/csv_parser/test+0x8cb53) (BuildId: 6dbba5a4b3656ad04924963f1dc4003f03e58507)
    #1 0x562f0af524be in fread_csv_line /home/user/examples/csv_parser/fread_csv_line.c:106:12
    #2 0x562f0af52dae in test_fread_csv_line /home/user/examples/csv_parser/tests/test.c:93:16
    #3 0x562f0af52554 in run_test /home/user/examples/csv_parser/tests/test.c:12:12
    #4 0x562f0af525cc in main /home/user/examples/csv_parser/tests/test.c:25:3
    #5 0x7f4e037c1d8f in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16

Direct leak of 14 byte(s) in 1 object(s) allocated from:
    #0 0x562f0af00b53 in strdup (/home/user/examples/csv_parser/test+0x8cb53) (BuildId: 6dbba5a4b3656ad04924963f1dc4003f03e58507)
    #1 0x562f0af524be in fread_csv_line /home/user/examples/csv_parser/fread_csv_line.c:106:12
    #2 0x562f0af52f4c in test_fread_csv_line /home/user/examples/csv_parser/tests/test.c:102:16
    #3 0x562f0af52554 in run_test /home/user/examples/csv_parser/tests/test.c:12:12
    #4 0x562f0af525cc in main /home/user/examples/csv_parser/tests/test.c:25:3
    #5 0x7f4e037c1d8f in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16

Direct leak of 14 byte(s) in 1 object(s) allocated from:
    #0 0x562f0af00b53 in strdup (/home/user/examples/csv_parser/test+0x8cb53) (BuildId: 6dbba5a4b3656ad04924963f1dc4003f03e58507)
    #1 0x562f0af524be in fread_csv_line /home/user/examples/csv_parser/fread_csv_line.c:106:12
    #2 0x562f0af52d24 in test_fread_csv_line /home/user/examples/csv_parser/tests/test.c:90:16
    #3 0x562f0af52554 in run_test /home/user/examples/csv_parser/tests/test.c:12:12
    #4 0x562f0af525cc in main /home/user/examples/csv_parser/tests/test.c:25:3
    #5 0x7f4e037c1d8f in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16

Direct leak of 12 byte(s) in 1 object(s) allocated from:
    #0 0x562f0af00b53 in strdup (/home/user/examples/csv_parser/test+0x8cb53) (BuildId: 6dbba5a4b3656ad04924963f1dc4003f03e58507)
    #1 0x562f0af524be in fread_csv_line /home/user/examples/csv_parser/fread_csv_line.c:106:12
    #2 0x562f0af530ea in test_fread_csv_line /home/user/examples/csv_parser/tests/test.c:111:16
    #3 0x562f0af52554 in run_test /home/user/examples/csv_parser/tests/test.c:12:12
    #4 0x562f0af525cc in main /home/user/examples/csv_parser/tests/test.c:25:3
    #5 0x7f4e037c1d8f in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16

Direct leak of 12 byte(s) in 1 object(s) allocated from:
    #0 0x562f0af00b53 in strdup (/home/user/examples/csv_parser/test+0x8cb53) (BuildId: 6dbba5a4b3656ad04924963f1dc4003f03e58507)
    #1 0x562f0af524be in fread_csv_line /home/user/examples/csv_parser/fread_csv_line.c:106:12
    #2 0x562f0af52c9a in test_fread_csv_line /home/user/examples/csv_parser/tests/test.c:87:16
    #3 0x562f0af52554 in run_test /home/user/examples/csv_parser/tests/test.c:12:12
    #4 0x562f0af525cc in main /home/user/examples/csv_parser/tests/test.c:25:3
    #5 0x7f4e037c1d8f in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16

Direct leak of 1 byte(s) in 1 object(s) allocated from:
    #0 0x562f0af00b53 in strdup (/home/user/examples/csv_parser/test+0x8cb53) (BuildId: 6dbba5a4b3656ad04924963f1dc4003f03e58507)
    #1 0x562f0af524be in fread_csv_line /home/user/examples/csv_parser/fread_csv_line.c:106:12
    #2 0x562f0af53174 in test_fread_csv_line /home/user/examples/csv_parser/tests/test.c:114:16
    #3 0x562f0af52554 in run_test /home/user/examples/csv_parser/tests/test.c:12:12
    #4 0x562f0af525cc in main /home/user/examples/csv_parser/tests/test.c:25:3
    #5 0x7f4e037c1d8f in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16

SUMMARY: AddressSanitizer: 145 byte(s) leaked in 10 allocation(s).

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