Hi,

On Wed, 28 Aug 2024 19:12:43 +0200
Rodrigo Arias <rodar...@gmail.com> wrote:

> You may be able to get some info on where it is failing by building 
> Dillo with the address sanitizer enabled:
> 
> $ git clone https://github.com/dillo-browser/dillo
> $ cd dillo
> $ ./autogen.sh
> $ mkdir build
> $ cd build
> $ ../configure  'CFLAGS=-Og -g -fsanitize=address' 'CXXFLAGS=-Og -g
> -fsanitize=address' $ make
> $ src/dillo https://narkive.com

That doesn't seem to work:

$ ../configure  'CFLAGS=-Og -g -fsanitize=address' 'CXXFLAGS=-Og -g
-fsanitize=address'
checking build system type... x86_64-unknown-openbsd7.6
[...]
configure: error: C compiler cannot create executables
See `config.log' for more details

config.log:
[...]
configure:4670: checking whether the C compiler works
configure:4692: cc -Og -g -fsanitize=address -I/usr/local/include
-I/usr/X11R6/include -L/usr/local/lib -L/usr/X11R6/lib conftest.c  >&5
cc: error: unsupported option '-fsanitize=address' for target
'amd64-unknown-openbsd7.6'
[...]

I also tried it with gcc, but also no luck:
configure:4670: checking whether the C compiler works
configure:4692: egcc -Og -g -fsanitize=address -I/usr/local/include
-I/usr/X11R6/include -L/usr/local/lib -L/usr/X11R6/lib conftest.c  >&5
ld: error: unable to find library -lasan

Then I tried this:
$ MALLOC_OPTIONS=D dillo

result:
Nav_open_url: new url='https://narkive.com'
Dns_server [0]: narkive.com is 149.248.211.108
Connecting to 149.248.211.108:443
TLS connect error: "an EOF was observed that violates the protocol"
Tls_close_by_key: Avoiding SSL shutdown for: https://narkive.com
fd 6 is done and failed
dillo(76315) in malloc(): write to free chunk 0x1957a5e82c0[24..31]@32
allocated at /usr/lib/libc++.so.10.0 0x8b918 (preceding chunk
0x1957a5e82a0 allocated at /usr/local/lib/libcrypto.so.53.0 0x1a7f51)
Abort trap (core dumped)

So now we have a reference to libcrypto. 

Here is the backtrace, also with some new info:

#0  thrkill () at /tmp/-:2
No locals.
#1  0xf3ab3815f99febfa in ?? ()
No symbol table info available.
#2  0x000001956d60a5ab in _libc_abort () at
/usr/src/lib/libc/stdlib/abort.c:51 sa = {__sigaction_u = {__sa_handler
= 0x3000000010, __sa_sigaction = 0x3000000010}, sa_mask = 3661176352,
sa_flags = 31051} mask = 4294967263
#3  0x000001956d5d93e4 in wrterror (d=0x195325a97a8, 
    msg=0x1956d53c0ad "write to free chunk %p[%zu..%zu]@%zu allocated
at %s (preceding chunk %p allocated at %s%s)") at
/usr/src/lib/libc/stdlib/malloc.c:378 ap = {{gp_offset = 48, fp_offset
= 48, overflow_arg_area = 0x794bda391f40, reg_save_area =
0x794bda391e20}} saved_errno = 35 #4  0x000001956d5df052 in
print_chunk_details (pool=0x195325a97a8, p=0x1957a5e82c0, sz=32,
index=<optimized out>) at /usr/src/lib/libc/stdlib/malloc.c:2433 buf1 =
"/usr/lib/libc++.so.10.0
0x8b918\000\310pam\225\001\000\000\300\337Z1\225\001\000\000\310pam\225\001\000\000\000\000\000\000\000\000\000\000x\322\020\027\225\001\000\000\240\371`z\225\001\000\000\240\371`z\225\001\000\000\250\227Z2\225\001\000\000\000\000\000\000\000\000\000\000IT\327|\370V\347W0
9\332Ky\000\000\000\000\000\000\000\000\000" buf2 =
"/usr/local/lib/libcrypto.so.53.0 0x1a7f51", '\000' <repeats 16 times>,
"\220c=\225\001\000\000\300\364`z\225\001\000\000\b\000\000\000\000\000\000\000@h=\366\224\001\000\000\272\fе\224\351\327]\310pam\225\001\000\000\253\305Sm\225\001\000\000\270tam\225\001\0-00\000\000\000\000\000\000\000\000"
msg = <optimized out> r = <optimized out> chunkinfo = 0x195576c5f88
chunknum = <optimized out> btnode = <optimized out> frame = 0
#5  0x000001956d5da1dd in validate_junk (pool=0x195325a97a8,
p=0x1957a5e82c0, argsz=0) at /usr/src/lib/libc/stdlib/malloc.c:777
        step = <optimized out>
        lp = 0x1957a5e82c0
        sz = <optimized out>
        i = 1741296686955
#6  malloc_bytes (d=0x195325a97a8, size=32) at
/usr/src/lib/libc/stdlib/malloc.c:1237 bucket = <optimized out>
        r = <optimized out>
        listnum = <optimized out>
        bp = 0x195576c5f88
        i = <optimized out>
        j = <optimized out>
        lp = <optimized out>
        k = <optimized out>
        p = 0x1957a5e82c0
        r = <optimized out>
#7  omalloc (pool=0x195325a97a8, sz=32, zero_fill=0)
    at /usr/src/lib/libc/stdlib/malloc.c:1391
        caller = <error reading variable caller (Cannot access memory
at address 0x0)> psz = <optimized out>
        p = <optimized out>
#8  0x000001956d5d9689 in _libc_malloc (size=32) at
/usr/src/lib/libc/stdlib/malloc.c:1545 saved_errno = 35
        d = 0x195325a97a8
        r = <optimized out>
#9  0x000001956bbc0918 in operator new (size=32)
    at /usr/src/gnu/lib/libcxx/../../../gnu/llvm/libcxx/src/new.cpp:67
        p = <optimized out>
#10 0x00000192ef94bfb1 in
lout::container::typed::HashSet<lout::object::TypedPointer<dw::core::Widget>
>::HashSet(bool, int) () No symbol table info available. #11
>0x00000192ef94bec5 in
>dw::core::StackingProcessingContext::StackingProcessingContext()
    ()
No symbol table info available.
#12 0x00000192ef94bb13 in
dw::core::GettingWidgetAtPointContext::GettingWidgetAtPointContext() ()
No symbol table info available. #13 0x00000192ef94a6c2 in
dw::core::Layout::getWidgetAtPoint(int, int) () No symbol table info
available. #14 0x00000192ef94b989 in
dw::core::Layout::moveToWidgetAtPoint(int, int, dw::core::ButtonState)
() No symbol table info available. #15 0x00000192ef94a4fe in
dw::core::Layout::motionNotify(dw::core::View*, int, int,
dw::core::ButtonState) () No symbol table info available. #16
0x00000192ef93fa0d in dw::fltk::FltkViewBase::handle(int) () No symbol
table info available. #17 0x00000192ef8b792c in UI::handle(int) ()
No symbol table info available.
#18 0x0000019517063404 in send(int, Fl_Widget*, Fl_Window*) ()
   from /usr/local/lib/libfltk.so.8.0
No symbol table info available.
#19 0x00000195170630da in Fl::handle_(int, Fl_Window*) ()
   from /usr/local/lib/libfltk.so.8.0
No symbol table info available.
#20 0x00000195170d1f7c in do_queued_events() () from
/usr/local/lib/libfltk.so.8.0 No symbol table info available.
#21 0x00000195170d1e88 in fl_wait(double) () from
/usr/local/lib/libfltk.so.8.0 No symbol table info available.
#22 0x0000019517061a6e in Fl::wait(double) () from
/usr/local/lib/libfltk.so.8.0 No symbol table info available.
#23 0x0000019517061c4d in Fl::run() () from
/usr/local/lib/libfltk.so.8.0 No symbol table info available.
#24 0x00000192ef8b3f95 in main ()
No symbol table info available.

Hope this helps!

Thanks,
Alex
_______________________________________________
Dillo-dev mailing list -- dillo-dev@mailman3.com
To unsubscribe send an email to dillo-dev-le...@mailman3.com

Reply via email to