Index | Thread | Search

From:
Theo Buehler <tb@openbsd.org>
Subject:
Re: Update to gdb-13.2 - tests wanted
To:
ports@openbsd.org, gkoehler@openbsd.org, kettenis@openbsd.org, miod@openbsd.org, visa@openbsd.org
Date:
Fri, 8 Nov 2024 09:29:31 +0100

Download raw body.

Thread
  • Pascal Stumpf:

    Update to gdb-13.2 - tests wanted

  • It builds and kind of works on arm64. It's much less broken than 9.2
    so I don't believe that's a blocker, but stepping between shared objects
    is strange.
    
    As you can see in this reproducer, instead of breaking at the entry of
    EVP_aead_aes_256_gcm() when I try to step, it slithers way past that and
    only remembers to break much later in libc rather than libcrypto.
    
    $ egdb -q openssl
    Reading symbols from openssl...
    (No debugging symbols found in openssl)
    (gdb) b tls13_cipher_aead
    Function "tls13_cipher_aead" not defined.
    Make breakpoint pending on future shared library load? (y or [n]) y
    Breakpoint 1 (tls13_cipher_aead) pending.
    (gdb) run s_client -connect libressl.org:443
    Starting program: /usr/bin/openssl s_client -connect libressl.org:443
    CONNECTED(00000003)
    
    Breakpoint 1, tls13_cipher_aead (cipher=<optimized out>) at /usr/src/lib/libssl/tls13_lib.c:78
    78		if (cipher == NULL)
    (gdb) bt
    #0  tls13_cipher_aead (cipher=<optimized out>) at /usr/src/lib/libssl/tls13_lib.c:78
    #1  0x00000012501a2b28 in tls13_client_engage_record_protection (ctx=0x12a8be6180)
        at /usr/src/lib/libssl/tls13_client.c:353
    #2  tls13_server_hello_recv (ctx=0x12a8be6180, cbs=<optimized out>)
        at /usr/src/lib/libssl/tls13_client.c:492
    #3  0x00000012501a29d8 [PAC] in tls13_server_hello_retry_request_recv (ctx=0x12a8be6180,
        cbs=0x7dc49c23e8) at /usr/src/lib/libssl/tls13_client.c:409
    #4  0x0000001250185520 [PAC] in tls13_handshake_recv_action (ctx=0x12a8be6180,
        action=0x12501d3820 <state_machine+64>) at /usr/src/lib/libssl/tls13_handshake.c:549
    #5  tls13_handshake_perform (ctx=0x12a8be6180) at /usr/src/lib/libssl/tls13_handshake.c:412
    #6  0x000000125018acac [PAC] in tls13_legacy_connect (ssl=0x134c957a00)
        at /usr/src/lib/libssl/tls13_legacy.c:466
    #7  0x000000125018a744 [PAC] in tls13_legacy_write_bytes (ssl=0x134c957a00, type=32, vbuf=0x0,
        len=0) at /usr/src/lib/libssl/tls13_legacy.c:266
    #8  0x0000000e4f8e2c20 [PAC] in ?? ()
    #9  0x0000000e4f8d7e38 [PAC] in ?? ()
    #10 0x0000000e4f8c038c [PAC] in ?? ()
    Backtrace stopped: previous frame identical to this frame (corrupt stack?)
    (gdb) n
    80		if (cipher->algorithm_ssl != SSL_TLSV1_3)
    (gdb)
    83		switch (cipher->algorithm_enc) {
    (gdb)
    87			return EVP_aead_aes_256_gcm();
    (gdb) s
    _libc_time (t=<optimized out>) at /usr/src/lib/libc/gen/time.c:36
    36	{
    (gdb) bt
    #0  _libc_time (t=<optimized out>) at /usr/src/lib/libc/gen/time.c:36
    #1  0x00000012f2c9b5b0 in x509_verify_cert_times (cert=0x12951ce620,
        cmp_time=<error reading variable: Cannot access memory at address 0x0>,
        error=<optimized out>) at /usr/src/lib/libcrypto/x509/x509_verify.c:820
    #2  x509_verify_cert_valid (ctx=0x12a49c3280, cert=0x12951ce620, current_chain=0x134c95b720)
        at /usr/src/lib/libcrypto/x509/x509_verify.c:940
    #3  0x00000012f2c9bbcc [PAC] in x509_verify_consider_candidate (ctx=0x12a49c3280,
        cert=0x12951ce0e0, is_root_cert=0, candidate=0x12951ce620, current_chain=0x134c95b720,
        full_chain=1, name=<optimized out>) at /usr/src/lib/libcrypto/x509/x509_verify.c:592
    #4  0x00000012f2c9b1b4 [PAC] in x509_verify_build_chains (ctx=0x12a49c3280, cert=0x12951ce0e0,
        current_chain=0x134c95b720, full_chain=1, name=0x0)
        at /usr/src/lib/libcrypto/x509/x509_verify.c:729
    #5  0x00000012f2c9a66c [PAC] in x509_verify (ctx=0x12a49c3280, leaf=0x12951ce0e0, name=0x0)
        at /usr/src/lib/libcrypto/x509/x509_verify.c:1164
    #6  0x00000012f2c8f830 [PAC] in _lcry_X509_verify_cert (ctx=0x12a49bfe40)
        at /usr/src/lib/libcrypto/x509/x509_vfy.c:644
    #7  0x00000012501b74c0 [PAC] in ssl_verify_cert_chain (s=0x134c957a00, certs=<optimized out>)
        at /usr/src/lib/libssl/ssl_cert.c:437
    #8  0x00000012501a3338 [PAC] in tls13_server_certificate_recv (ctx=0x12a8be6180,
        cbs=<optimized out>) at /usr/src/lib/libssl/tls13_client.c:605
    #9  0x0000001250185520 [PAC] in tls13_handshake_recv_action (ctx=0x12a8be6180,
        action=0x12501d38a0 <state_machine+192>) at /usr/src/lib/libssl/tls13_handshake.c:549
    #10 tls13_handshake_perform (ctx=0x12a8be6180) at /usr/src/lib/libssl/tls13_handshake.c:412
    #11 0x000000125018acac [PAC] in tls13_legacy_connect (ssl=0x134c957a00)
        at /usr/src/lib/libssl/tls13_legacy.c:466
    #12 0x000000125018a744 [PAC] in tls13_legacy_write_bytes (ssl=0x134c957a00, type=1284996096,
        vbuf=0x1a, len=0) at /usr/src/lib/libssl/tls13_legacy.c:266
    #13 0x0000000e4f8e2c20 [PAC] in ?? ()
    #14 0x0000000e4f8d7e38 [PAC] in ?? ()
    #15 0x0000000e4f8c038c [PAC] in ?? ()
    Backtrace stopped: previous frame identical to this frame (corrupt stack?)
    (gdb)
    
    
    
  • Pascal Stumpf:

    Update to gdb-13.2 - tests wanted