2: Test timeout computed to be: 9.99988e+06
2: [==========] Running 23 test(s).
2: [ RUN ] test_lys_parse_mem
2: libyang[0]: Invalid (mixed names) opening (module_typo) and closing (module) element tags. (path: /module_typo)
2: libyang[0]: Module parsing failed.
2: [ OK ] test_lys_parse_mem
2: [ RUN ] test_lys_parse_fd
2: libyang[0]: Module "a" in another revision already implemented.
2: libyang[0]: Module "a" parsing failed.
2: =================================================================
2: ==18062==ERROR: AddressSanitizer: heap-use-after-free on address 0x60d000009798 at pc 0x7f70199b657e bp 0x7ffc7fb294f0 sp 0x7ffc7fb294e8
2: READ of size 8 at 0x60d000009798 thread T0
2: #0 0x7f70199b657d in lys_node_unlink /home/jkt/work/prog/libyang/src/tree_schema.c:354:21
2: #1 0x7f70199bb174 in lys_node_free /home/jkt/work/prog/libyang/src/tree_schema.c:1975:5
2: #2 0x7f70199d67e4 in lys_augment_free /home/jkt/work/prog/libyang/src/tree_schema.c:1483:13
2: #3 0x7f70199c4709 in module_free_common /home/jkt/work/prog/libyang/src/tree_schema.c:2122:9
2: #4 0x7f70199c385f in lys_submodule_free /home/jkt/work/prog/libyang/src/tree_schema.c:2150:5
2: #5 0x7f70199c45c7 in module_free_common /home/jkt/work/prog/libyang/src/tree_schema.c:2115:13
2: #6 0x7f70199cd19a in lys_free /home/jkt/work/prog/libyang/src/tree_schema.c:2835:5
2: #7 0x7f70198f2d94 in yin_read_module /home/jkt/work/prog/libyang/src/parser_yin.c:5995:5
2: #8 0x7f70199bb43d in lys_parse_mem_ /home/jkt/work/prog/libyang/src/tree_schema.c:863:15
2: #9 0x7f70199bb1b4 in lys_parse_mem /home/jkt/work/prog/libyang/src/tree_schema.c:880:12
2: #10 0x50fd6f in test_lys_parse_fd /home/jkt/work/prog/libyang/tests/api/test_tree_schema.c:396:14
2: #11 0x7f7019d2bd96 in cmocka_run_one_test_or_fixture /var/tmp/portage/dev-util/cmocka-1.0.1/work/cmocka-1.0.1/src/cmocka.c:2305
2: #12 0x7f7019d2c4e7 in cmocka_run_one_tests /var/tmp/portage/dev-util/cmocka-1.0.1/work/cmocka-1.0.1/src/cmocka.c:2413
2: #13 0x7f7019d2c4e7 in _cmocka_run_group_tests /var/tmp/portage/dev-util/cmocka-1.0.1/work/cmocka-1.0.1/src/cmocka.c:2518
2: #14 0x50f9f4 in main /home/jkt/work/prog/libyang/tests/api/test_tree_schema.c:1273:12
2: #15 0x7f70186d1733 in __libc_start_main /var/tmp/portage/sys-libs/glibc-2.22-r4/work/glibc-2.22/csu/libc-start.c:289
2: #16 0x419cd8 in _start (/home/jkt/work/prog/libyang/build/tests/test_tree_schema+0x419cd8)
2:
2: 0x60d000009798 is located 56 bytes inside of 136-byte region [0x60d000009760,0x60d0000097e8)
2: freed by thread T0 here:
2: #0 0x4d4fb0 in free /var/tmp/portage/sys-devel/llvm-3.9.0-r1/work/llvm-3.9.0.src/projects/compiler-rt/lib/asan/asan_malloc_linux.cc:47
2: #1 0x7f70199bb17d in lys_node_free /home/jkt/work/prog/libyang/src/tree_schema.c:1976:5
2: #2 0x7f70199c3cab in module_free_common /home/jkt/work/prog/libyang/src/tree_schema.c:2078:13
2: #3 0x7f70199cd19a in lys_free /home/jkt/work/prog/libyang/src/tree_schema.c:2835:5
2: #4 0x7f70198f2d94 in yin_read_module /home/jkt/work/prog/libyang/src/parser_yin.c:5995:5
2: #5 0x7f70199bb43d in lys_parse_mem_ /home/jkt/work/prog/libyang/src/tree_schema.c:863:15
2: #6 0x7f70199bb1b4 in lys_parse_mem /home/jkt/work/prog/libyang/src/tree_schema.c:880:12
2: #7 0x50fd6f in test_lys_parse_fd /home/jkt/work/prog/libyang/tests/api/test_tree_schema.c:396:14
2: #8 0x7f7019d2bd96 in cmocka_run_one_test_or_fixture /var/tmp/portage/dev-util/cmocka-1.0.1/work/cmocka-1.0.1/src/cmocka.c:2305
2: #9 0x7f7019d2c4e7 in cmocka_run_one_tests /var/tmp/portage/dev-util/cmocka-1.0.1/work/cmocka-1.0.1/src/cmocka.c:2413
2: #10 0x7f7019d2c4e7 in _cmocka_run_group_tests /var/tmp/portage/dev-util/cmocka-1.0.1/work/cmocka-1.0.1/src/cmocka.c:2518
2: #11 0x50f9f4 in main /home/jkt/work/prog/libyang/tests/api/test_tree_schema.c:1273:12
2: #12 0x7f70186d1733 in __libc_start_main /var/tmp/portage/sys-libs/glibc-2.22-r4/work/glibc-2.22/csu/libc-start.c:289
2: #13 0x419cd8 in _start (/home/jkt/work/prog/libyang/build/tests/test_tree_schema+0x419cd8)
2:
2: previously allocated by thread T0 here:
2: #0 0x4d5525 in calloc /var/tmp/portage/sys-devel/llvm-3.9.0-r1/work/llvm-3.9.0.src/projects/compiler-rt/lib/asan/asan_malloc_linux.cc:72
2: #1 0x7f7019903898 in read_yin_container /home/jkt/work/prog/libyang/src/parser_yin.c:4406:12
2: #2 0x7f70198f0fc0 in read_sub_module /home/jkt/work/prog/libyang/src/parser_yin.c:5776:20
2: #3 0x7f70198eab99 in yin_read_submodule /home/jkt/work/prog/libyang/src/parser_yin.c:5869:9
2: #4 0x7f70199bb5d1 in lys_submodule_parse /home/jkt/work/prog/libyang/src/tree_schema.c:896:18
2: #5 0x7f70199bca40 in lys_submodule_read /home/jkt/work/prog/libyang/src/tree_schema.c:1043:17
2: #6 0x7f70198c5bab in lyp_search_file /home/jkt/work/prog/libyang/src/parser.c:420:39
2: #7 0x7f701985d4a8 in ly_ctx_load_sub_module /home/jkt/work/prog/libyang/src/context.c:470:15
2: #8 0x7f70198d6fd8 in lyp_check_include /home/jkt/work/prog/libyang/src/parser.c:2274:50
2: #9 0x7f70198f45b9 in fill_yin_include /home/jkt/work/prog/libyang/src/parser_yin.c:2970:12
2: #10 0x7f70198ee706 in read_sub_module /home/jkt/work/prog/libyang/src/parser_yin.c:5635:17
2: #11 0x7f70198eab99 in yin_read_submodule /home/jkt/work/prog/libyang/src/parser_yin.c:5869:9
2: #12 0x7f70199bb5d1 in lys_submodule_parse /home/jkt/work/prog/libyang/src/tree_schema.c:896:18
2: #13 0x7f70199bca40 in lys_submodule_read /home/jkt/work/prog/libyang/src/tree_schema.c:1043:17
2: #14 0x7f70198c5bab in lyp_search_file /home/jkt/work/prog/libyang/src/parser.c:420:39
2: #15 0x7f701985d4a8 in ly_ctx_load_sub_module /home/jkt/work/prog/libyang/src/context.c:470:15
2: #16 0x7f70198d6fd8 in lyp_check_include /home/jkt/work/prog/libyang/src/parser.c:2274:50
2: #17 0x7f70198f45b9 in fill_yin_include /home/jkt/work/prog/libyang/src/parser_yin.c:2970:12
2: #18 0x7f70198ee706 in read_sub_module /home/jkt/work/prog/libyang/src/parser_yin.c:5635:17
2: #19 0x7f70198f22d6 in yin_read_module /home/jkt/work/prog/libyang/src/parser_yin.c:5944:9
2: #20 0x7f70199bb43d in lys_parse_mem_ /home/jkt/work/prog/libyang/src/tree_schema.c:863:15
2: #21 0x7f70199bb1b4 in lys_parse_mem /home/jkt/work/prog/libyang/src/tree_schema.c:880:12
2: #22 0x50fd6f in test_lys_parse_fd /home/jkt/work/prog/libyang/tests/api/test_tree_schema.c:396:14
2: #23 0x7f7019d2bd96 in cmocka_run_one_test_or_fixture /var/tmp/portage/dev-util/cmocka-1.0.1/work/cmocka-1.0.1/src/cmocka.c:2305
2: #24 0x7f7019d2c4e7 in cmocka_run_one_tests /var/tmp/portage/dev-util/cmocka-1.0.1/work/cmocka-1.0.1/src/cmocka.c:2413
2: #25 0x7f7019d2c4e7 in _cmocka_run_group_tests /var/tmp/portage/dev-util/cmocka-1.0.1/work/cmocka-1.0.1/src/cmocka.c:2518
2: #26 0x50f9f4 in main /home/jkt/work/prog/libyang/tests/api/test_tree_schema.c:1273:12
2: #27 0x7f70186d1733 in __libc_start_main /var/tmp/portage/sys-libs/glibc-2.22-r4/work/glibc-2.22/csu/libc-start.c:289
2: #28 0x419cd8 in _start (/home/jkt/work/prog/libyang/build/tests/test_tree_schema+0x419cd8)
2:
2: SUMMARY: AddressSanitizer: heap-use-after-free /home/jkt/work/prog/libyang/src/tree_schema.c:354:21 in lys_node_unlink
2: Shadow bytes around the buggy address:
2: 0x0c1a7fff92a0: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fa
2: 0x0c1a7fff92b0: fa fa fa fa fa fa fa fa 00 00 00 00 00 00 00 00
2: 0x0c1a7fff92c0: 00 00 00 00 00 00 00 00 00 fa fa fa fa fa fa fa
2: 0x0c1a7fff92d0: fa fa 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2: 0x0c1a7fff92e0: 00 00 00 fa fa fa fa fa fa fa fa fa fd fd fd fd
2: =>0x0c1a7fff92f0: fd fd fd[fd]fd fd fd fd fd fd fd fd fd fa fa fa
2: 0x0c1a7fff9300: fa fa fa fa fa fa 00 00 00 00 00 00 00 00 00 00
2: 0x0c1a7fff9310: 00 00 00 00 00 00 00 fa fa fa fa fa fa fa fa fa
2: 0x0c1a7fff9320: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2: 0x0c1a7fff9330: 00 fa fa fa fa fa fa fa fa fa 00 00 00 00 00 00
2: 0x0c1a7fff9340: 00 00 00 00 00 00 00 00 00 00 00 fa fa fa fa fa
2: Shadow byte legend (one shadow byte represents 8 application bytes):
2: Addressable: 00
2: Partially addressable: 01 02 03 04 05 06 07
2: Heap left redzone: fa
2: Heap right redzone: fb
2: Freed heap region: fd
2: Stack left redzone: f1
2: Stack mid redzone: f2
2: Stack right redzone: f3
2: Stack partial redzone: f4
2: Stack after return: f5
2: Stack use after scope: f8
2: Global redzone: f9
2: Global init order: f6
2: Poisoned by user: f7
2: Container overflow: fc
2: Array cookie: ac
2: Intra object redzone: bb
2: ASan internal: fe
2: Left alloca redzone: ca
2: Right alloca redzone: cb
2: ==18062==ABORTING
1/1 Test #2: test_tree_schema .................***Failed 0.10 sec
0% tests passed, 1 tests failed out of 1
Total Test time (real) = 0.10 sec
The following tests FAILED:
2 - test_tree_schema (Failed)
Errors while running CTest```
A similarly looking use-after-free happens in test_sec7_15, test_sec7_19_1 and test_sec7_19_5. I recall that I've been seeing them for a longer time (a month, perhaps?), but never investigated.