libpostal icon indicating copy to clipboard operation
libpostal copied to clipboard

fix memory leak in setup when datadir is invalid or setup failed

Open edding opened this issue 7 years ago • 1 comments

I found this leak when passing an invalid datadir to setup. I'm running on 1.0.0 but it seems this issue still exists on master:

ERR   Error loading transliteration module, dir=/fake/datadir/transliteration/transliteration.dat
   at libpostal_setup_datadir (libpostal.c:1047) errno: No such file or directory
WARNING: Logging before InitGoogleLogging() is written to STDERR
ERR   parser is not setup, call libpostal_setup_address_parser()
   at address_parser_parse (address_parser.c:1659) errno: No such file or directory
ERR   Parser returned NULL
   at libpostal_parse_address (libpostal.c:1027) errno: No such file or directory

=================================================================
==4194251==ERROR: LeakSanitizer: detected memory leaks

Direct leak of 128 byte(s) in 1 object(s) allocated from:
    #0 0x4f7e90 in realloc (/data/users/jdedward/libpostal_wrapper_test+0x4f7e90)
    #1 0x7f3c6803b929 in char_array_push /home/libpostal/1.0.0/src/libpostal-1.0.0/src/collections.h:50
    #2 0x7f3c6803b929 in char_array_append_len /home/libpostal/1.0.0/src/libpostal-1.0.0/src/string_utils.c:673
    #3 0x7f3c6803b929 in char_array_add_vjoined /home/libpostal/1.0.0/src/libpostal-1.0.0/src/string_utils.c:757
    #4 0x7f3c6803db58 in path_vjoin /home/libpostal/1.0.0/src/libpostal-1.0.0/src/file_utils.c:49
    #5 0x7f3c6803dc0a in path_join /home/libpostal/1.0.0/src/libpostal-1.0.0/src/file_utils.c:56
    #6 0x7f3c6802a393 in libpostal_setup_datadir /home/libpostal/1.0.0/src/libpostal-1.0.0/src/libpostal.c:1042
...

Direct leak of 128 byte(s) in 1 object(s) allocated from:
    #0 0x4f7e90 in realloc (/data/users/jdedward/libpostal_wrapper_test+0x4f7e90)
    #1 0x7f3c6803b929 in char_array_push /home/libpostal/1.0.0/src/libpostal-1.0.0/src/collections.h:50
    #2 0x7f3c6803b929 in char_array_append_len /home/libpostal/1.0.0/src/libpostal-1.0.0/src/string_utils.c:673
    #3 0x7f3c6803b929 in char_array_add_vjoined /home/libpostal/1.0.0/src/libpostal-1.0.0/src/string_utils.c:757
    #4 0x7f3c6803db58 in path_vjoin /home/libpostal/1.0.0/src/libpostal-1.0.0/src/file_utils.c:49
    #5 0x7f3c6803dc0a in path_join /home/libpostal/1.0.0/src/libpostal-1.0.0/src/file_utils.c:56
    #6 0x7f3c6802a3b3 in libpostal_setup_datadir /home/libpostal/1.0.0/src/libpostal-1.0.0/src/libpostal.c:1043
...

Direct leak of 128 byte(s) in 1 object(s) allocated from:
    #0 0x4f7e90 in realloc (/data/users/jdedward/libpostal_wrapper_test+0x4f7e90)
    #1 0x7f3c6803b929 in char_array_push /home/libpostal/1.0.0/src/libpostal-1.0.0/src/collections.h:50
    #2 0x7f3c6803b929 in char_array_append_len /home/libpostal/1.0.0/src/libpostal-1.0.0/src/string_utils.c:673
    #3 0x7f3c6803b929 in char_array_add_vjoined /home/libpostal/1.0.0/src/libpostal-1.0.0/src/string_utils.c:757
    #4 0x7f3c6803db58 in path_vjoin /home/libpostal/1.0.0/src/libpostal-1.0.0/src/file_utils.c:49
    #5 0x7f3c6803dc0a in path_join /home/libpostal/1.0.0/src/libpostal-1.0.0/src/file_utils.c:56
    #6 0x7f3c6802a373 in libpostal_setup_datadir /home/libpostal/1.0.0/src/libpostal-1.0.0/src/libpostal.c:1041
...

edding avatar Oct 26 '18 23:10 edding

LGTM

sbrugman avatar Sep 08 '20 10:09 sbrugman