Martinsos / edlib

Lightweight, super fast C/C++ (& Python) library for sequence alignment using edit (Levenshtein) distance.
http://martinsos.github.io/edlib
MIT License
493 stars 162 forks source link

heap-buffer-overflow in transformSequences() #73

Closed geeknik closed 7 years ago

geeknik commented 7 years ago

Compiled with afl-clang-fast++ and ASan.

./edlib-aligner -p test002 test002

==9855==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x60d0000016a0 at pc 0x0000004ca1ce bp 0x7fff64793070 sp 0x7fff64793068
WRITE of size 1 at 0x60d0000016a0 thread T0
    #0 0x4ca1cd in transformSequences(char const*, int, char const*, int, unsigned char**, unsigned char**) /root/edlib/edlib/src/edlib.cpp:1380:9
    #1 0x4ca1cd in edlibAlign /root/edlib/edlib/src/edlib.cpp:115
    #2 0x4c011e in main /root/edlib/apps/aligner/aligner.cpp:162:35
    #3 0x7fe52d1d7b44 in __libc_start_main /build/glibc-qK83Be/glibc-2.19/csu/libc-start.c:287
    #4 0x4be9bc in _start (/root/edlib/build/bin/edlib-aligner+0x4be9bc)

AddressSanitizer can not describe address in more detail (wild memory access suspected).
SUMMARY: AddressSanitizer: heap-buffer-overflow /root/edlib/edlib/src/edlib.cpp:1380 transformSequences(char const*, int, char const*, int, unsigned char**, unsigned char**)

test002.zip

Martinsos commented 7 years ago

Solved with c1f04e8