Project

General

Profile

Bug #2849

charon_cmd does not terminate after SIGINT when using OpenSSL 1.1

Added by Rainer Urian 5 days ago. Updated 4 days ago.

Status:
Closed
Priority:
Normal
Category:
charon-cmd
Target version:
Start date:
06.12.2018
Due date:
Estimated time:
Affected version:
5.7.1
Resolution:
Fixed

Description

After sending SIGINT to the charon_cmd process it does not terminate. The following test shows the last log messages of charon_cmd:

^C00[DMN] signal of type SIGINT received. Shutting down
00[IKE] deleting IKE_SA cmd[1] between 10.211.55.4[urian]...192.168.178.22[192.168.178.22]
00[IKE] sending DELETE for IKE_SA cmd[1]
00[ENC] generating INFORMATIONAL request 5 [ D ]

The issue is not present in version 5.6.2

I am using Ubuntu 18.04

Associated revisions

Revision 157150ca (diff)
Added by Tobias Brunner 4 days ago

charon-cmd: Register atexit() handler for libcharon_deinit twice

Similar to cbe9e575eef5, this avoids issues with libraries that are
pulled in via plugins and register their own atexit() handlers.

History

#1 Updated by Tobias Brunner 5 days ago

  • Status changed from New to Feedback

Try attaching to the process with GDB to get a stack trace of all threads (thread apply all bt full).

#2 Updated by Rainer Urian 5 days ago

GDB log after SIGINT hang (sometimes it works if GDB is attached):

(gdb) attach 7523
Attaching to program: /usr/local/sbin/charon-cmd, process 7523
[New LWP 7524]
[New LWP 7525]
[New LWP 7528]
[New LWP 7530]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
__pthread_rwlock_wrlock_full (abstime=0x0, rwlock=0x55b4e9e28200)
    at pthread_rwlock_common.c:915
915    pthread_rwlock_common.c: No such file or directory.
(gdb) thread apply all bt full

Thread 5 (Thread 0x7f4289a0e700 (LWP 7530)):
#0  0x00007f42921969f3 in futex_wait_cancelable (private=<optimized out>,
    expected=0, futex_word=0x55b4e9e3ad2c)
    at ../sysdeps/unix/sysv/linux/futex-internal.h:88
        __ret = -512
        oldtype = 0
        err = <optimized out>
        oldtype = <optimized out>
        err = <optimized out>
        __ret = <optimized out>
        resultvar = <optimized out>
        __arg4 = <optimized out>
        __arg3 = <optimized out>
        __arg2 = <optimized out>
        __arg1 = <optimized out>
        _a4 = <optimized out>
        _a3 = <optimized out>
        _a2 = <optimized out>
        _a1 = <optimized out>
#1  __pthread_cond_wait_common (abstime=0x0, mutex=0x55b4e9e3b0a8,
    cond=0x55b4e9e3ad00) at pthread_cond_wait.c:502
        spin = 0
---Type <return> to continue, or q <return> to quit---
        buffer = {__routine = 0x7f4292196690 <__condvar_cleanup_waiting>,
          __arg = 0x7f4289a0dd30, __canceltype = 0, __prev = 0x0}
        cbuffer = {wseq = 11, cond = 0x55b4e9e3ad00, mutex = 0x55b4e9e3b0a8,
          private = 0}
        rt = <optimized out>
        err = <optimized out>
        g = 1
        flags = <optimized out>
        g1_start = <optimized out>
        signals = <optimized out>
        result = 0
        wseq = <optimized out>
        seq = 5
        private = <optimized out>
        maxspin = <optimized out>
        err = <optimized out>
        result = <optimized out>
        wseq = <optimized out>
        g = <optimized out>
        seq = <optimized out>
        flags = <optimized out>
        private = <optimized out>
        signals = <optimized out>
---Type <return> to continue, or q <return> to quit---
        g1_start = <optimized out>
        spin = <optimized out>
        buffer = <optimized out>
        cbuffer = <optimized out>
        rt = <optimized out>
        s = <optimized out>
#2  __pthread_cond_wait (cond=0x55b4e9e3ad00, mutex=0x55b4e9e3b0a8)
    at pthread_cond_wait.c:655
No locals.
#3  0x00007f42923d1156 in send_packets (this=0x55b4e9e3af60)
    at network/sender.c:152
        packet = 0x7f4260006050
        oldstate = false
#4  0x00007f4292670c72 in execute (this=<optimized out>)
    at processing/jobs/callback_job.c:77
No locals.
#5  0x00007f42926715a6 in process_job (worker=0x55b4e9e469b0,
    this=0x55b4e9deda70) at processing/processor.c:235
        to_destroy = 0x0
        requeue = <optimized out>
        to_destroy = <optimized out>
        requeue = <optimized out>
#6  process_jobs (worker=0x55b4e9e469b0) at processing/processor.c:321
---Type <return> to continue, or q <return> to quit---
        this = 0x55b4e9deda70
#7  0x00007f42926836bb in thread_main (this=0x55b4e9e469e0)
    at threading/thread.c:331
        __cancel_buf = {__cancel_jmp_buf = {{__cancel_jmp_buf = {4,
                1843738438814485156, 139923753590720, 0, 94235506534880,
                140731808116064, -1795998269981767004, -1795983493951698268},
              __mask_was_saved = 0}}, __pad = {0x7f4289a0df10, 0x0, 0x0, 0x0}}
        __cancel_routine = 0x7f4292683900 <thread_cleanup>
        __cancel_arg = 0x55b4e9e469e0
        __not_first_call = <optimized out>
        res = <optimized out>
#8  0x00007f42921906db in start_thread (arg=0x7f4289a0e700)
    at pthread_create.c:463
        pd = 0x7f4289a0e700
        now = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {139923753592576,
                1843738438814485156, 139923753590720, 0, 94235506534880,
                140731808116064, -1795998269952406876, -1795983638362240348},
              mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0},
            data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = <optimized out>
#9  0x00007f4291eb988f in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
---Type <return> to continue, or q <return> to quit---
No locals.

Thread 4 (Thread 0x7f428aa10700 (LWP 7528)):
#0  0x00007f4291eacbf9 in __GI___poll (fds=fds@entry=0x7f428aa0fc90,
    nfds=nfds@entry=4, timeout=timeout@entry=-1)
    at ../sysdeps/unix/sysv/linux/poll.c:29
        resultvar = 18446744073709551100
        sc_cancel_oldtype = 0
        sc_ret = <optimized out>
#1  0x00007f428ce1f4ce in poll (__timeout=-1, __nfds=4, __fds=0x7f428aa0fc90)
    at /usr/include/x86_64-linux-gnu/bits/poll2.h:46
No locals.
#2  receiver (this=0x55b4e9e3ae10, packet=0x7f428aa0fd78)
    at socket_default_socket.c:263
        buffer = 0x7f428aa0d4c0 "" 
        data = <optimized out>
        pkt = <optimized out>
        source = 0x0
        dest = 0x0
        i = <optimized out>
        rr = <optimized out>
        index = <optimized out>
        bytes_read = 0
---Type <return> to continue, or q <return> to quit---
        selected = -1
        oldstate = false
        port = 0
        pfd = {{fd = 11, events = 1, revents = 0}, {fd = 12, events = 1,
            revents = 0}, {fd = 9, events = 1, revents = 0}, {fd = 10,
            events = 1, revents = 0}}
        ports = {60702, 60568, 60702, 60568}
#3  0x00007f42923d1909 in receiver (this=0x55b4e9deecc0, packet=0x7f428aa0fd78)
    at network/socket_manager.c:71
        status = <optimized out>
        packet = 0x7f428aa0fd78
        this = 0x55b4e9deecc0
        status = <optimized out>
        status = <optimized out>
#4  0x00007f42923d07c4 in receive_packets (this=0x55b4e9dfc8f0)
    at network/receiver.c:425
        id = <optimized out>
        packet = 0x7f427c0027c0
        message = <optimized out>
        src = <optimized out>
        dst = <optimized out>
        status = <optimized out>
        supported = true
---Type <return> to continue, or q <return> to quit---
        data = <optimized out>
        marker = {ptr = 0x7f428aa0fd84 "", len = 4}
#5  0x00007f4292670c72 in execute (this=<optimized out>)
    at processing/jobs/callback_job.c:77
No locals.
#6  0x00007f42926715a6 in process_job (worker=0x55b4e9e449d0,
    this=0x55b4e9deda70) at processing/processor.c:235
        to_destroy = 0x0
        requeue = <optimized out>
        to_destroy = <optimized out>
        requeue = <optimized out>
#7  process_jobs (worker=0x55b4e9e449d0) at processing/processor.c:321
        this = 0x55b4e9deda70
#8  0x00007f42926836bb in thread_main (this=0x55b4e9e46470)
    at threading/thread.c:331
        __cancel_buf = {__cancel_jmp_buf = {{__cancel_jmp_buf = {3,
                1843738438814485156, 139923770376128, 0, 94235506533488,
                140731808116064, -1796000470078764380, -1795983493951698268},
              __mask_was_saved = 0}}, __pad = {0x7f428aa0ff10, 0x0, 0x0, 0x0}}
        __cancel_routine = 0x7f4292683900 <thread_cleanup>
        __cancel_arg = 0x55b4e9e46470
        __not_first_call = <optimized out>
        res = <optimized out>
---Type <return> to continue, or q <return> to quit---
#9  0x00007f42921906db in start_thread (arg=0x7f428aa10700)
    at pthread_create.c:463
        pd = 0x7f428aa10700
        now = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {139923770377984,
                1843738438814485156, 139923770376128, 0, 94235506533488,
                140731808116064, -1796000470049404252, -1795983638362240348},
              mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0},
            data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = <optimized out>
#10 0x00007f4291eb988f in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
No locals.

Thread 3 (Thread 0x7f428c213700 (LWP 7525)):
#0  0x00007f4292196ed9 in futex_reltimed_wait_cancelable (
    private=<optimized out>, reltime=0x7f428c212c70, expected=0,
    futex_word=0x55b4e9defe5c)
    at ../sysdeps/unix/sysv/linux/futex-internal.h:142
        __ret = -516
        oldtype = 0
        err = <optimized out>
        oldtype = <optimized out>
---Type <return> to continue, or q <return> to quit---
        err = <optimized out>
        __ret = <optimized out>
        resultvar = <optimized out>
        __arg4 = <optimized out>
        __arg3 = <optimized out>
        __arg2 = <optimized out>
        __arg1 = <optimized out>
        _a4 = <optimized out>
        _a3 = <optimized out>
        _a2 = <optimized out>
        _a1 = <optimized out>
#1  __pthread_cond_wait_common (abstime=0x7f428c212d20, mutex=0x55b4e9dfb698,
    cond=0x55b4e9defe30) at pthread_cond_wait.c:533
        rt = {tv_sec = 13, tv_nsec = 721736377}
        spin = 0
        buffer = {__routine = 0x7f4292196690 <__condvar_cleanup_waiting>,
          __arg = 0x7f428c212ca0, __canceltype = -371271056, __prev = 0x0}
        cbuffer = {wseq = 27, cond = 0x55b4e9defe30, mutex = 0x55b4e9dfb698,
          private = 0}
        err = <optimized out>
        g = 1
        flags = <optimized out>
        g1_start = <optimized out>
---Type <return> to continue, or q <return> to quit---
        maxspin = 0
        signals = <optimized out>
        result = 0
        wseq = <optimized out>
        seq = 13
        private = <optimized out>
        maxspin = <optimized out>
        err = <optimized out>
        result = <optimized out>
        wseq = <optimized out>
        g = <optimized out>
        seq = <optimized out>
        flags = <optimized out>
        private = <optimized out>
        signals = <optimized out>
        g1_start = <optimized out>
        spin = <optimized out>
        buffer = <optimized out>
        cbuffer = <optimized out>
        rt = <optimized out>
        s = <optimized out>
#2  __pthread_cond_timedwait (cond=cond@entry=0x55b4e9defe30,
    mutex=mutex@entry=0x55b4e9dfb698, abstime=abstime@entry=0x7f428c212d20)
---Type <return> to continue, or q <return> to quit---
    at pthread_cond_wait.c:667
No locals.
#3  0x00007f4292683fdd in timed_wait_abs (this=0x55b4e9defe00,
    mutex=0x55b4e9dfb680, time=...) at threading/mutex.c:270
        ts = {tv_sec = 1718, tv_nsec = 77435000}
        timed_out = <optimized out>
#4  0x00007f4292671caf in schedule (this=0x55b4e9dfb8d0)
    at processing/scheduler.c:218
        now = {tv_sec = 13, tv_usec = 721738}
        event = <optimized out>
        timed = true
        oldstate = false
#5  0x00007f4292670c72 in execute (this=<optimized out>)
    at processing/jobs/callback_job.c:77
No locals.
#6  0x00007f42926715a6 in process_job (worker=0x55b4e9e42af0,
    this=0x55b4e9deda70) at processing/processor.c:235
        to_destroy = 0x0
        requeue = <optimized out>
        to_destroy = <optimized out>
        requeue = <optimized out>
#7  process_jobs (worker=0x55b4e9e42af0) at processing/processor.c:321
        this = 0x55b4e9deda70
---Type <return> to continue, or q <return> to quit---
#8  0x00007f42926836bb in thread_main (this=0x55b4e9e3bf30)
    at threading/thread.c:331
        __cancel_buf = {__cancel_jmp_buf = {{__cancel_jmp_buf = {2,
                1843738438814485156, 139923795554240, 0, 94235506491184,
                140731808116064, -1795988381356438876, -1795983493951698268},
              __mask_was_saved = 0}}, __pad = {0x7f428c212f10, 0x0, 0x0, 0x0}}
        __cancel_routine = 0x7f4292683900 <thread_cleanup>
        __cancel_arg = 0x55b4e9e3bf30
        __not_first_call = <optimized out>
        res = <optimized out>
#9  0x00007f42921906db in start_thread (arg=0x7f428c213700)
    at pthread_create.c:463
        pd = 0x7f428c213700
        now = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {139923795556096,
                1843738438814485156, 139923795554240, 0, 94235506491184,
                140731808116064, -1795988381327078748, -1795983638362240348},
              mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0},
            data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = <optimized out>
#10 0x00007f4291eb988f in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
No locals.
---Type <return> to continue, or q <return> to quit---

Thread 2 (Thread 0x7f428ca14700 (LWP 7524)):
#0  0x00007f4291eacbf9 in __GI___poll (fds=fds@entry=0x7f428ca13d20,
    nfds=nfds@entry=3, timeout=timeout@entry=-1)
    at ../sysdeps/unix/sysv/linux/poll.c:29
        resultvar = 18446744073709551100
        sc_cancel_oldtype = 0
        sc_ret = <optimized out>
#1  0x00007f42926725a3 in poll (__timeout=-1, __nfds=3, __fds=0x7f428ca13d20)
    at /usr/include/x86_64-linux-gnu/bits/poll2.h:46
No locals.
#2  watch (this=0x55b4e9df0080) at processing/watcher.c:397
        revents = <optimized out>
        buf = "u" 
        old = false
        len = <optimized out>
        job = 0x0
        entry = <optimized out>
        pfd = 0x7f428ca13d20
        count = <optimized out>
        res = <optimized out>
        rebuild = false
#3  0x00007f4292670c72 in execute (this=<optimized out>)
---Type <return> to continue, or q <return> to quit---
    at processing/jobs/callback_job.c:77
No locals.
#4  0x00007f42926715a6 in process_job (worker=0x55b4e9e3a0c0,
    this=0x55b4e9deda70) at processing/processor.c:235
        to_destroy = 0x0
        requeue = <optimized out>
        to_destroy = <optimized out>
        requeue = <optimized out>
#5  process_jobs (worker=0x55b4e9e3a0c0) at processing/processor.c:321
        this = 0x55b4e9deda70
#6  0x00007f42926836bb in thread_main (this=0x55b4e9e3cbe0)
    at threading/thread.c:331
        __cancel_buf = {__cancel_jmp_buf = {{__cancel_jmp_buf = {1,
                1843738438814485156, 139923803946944, 0, 94235506494432,
                140731808116064, -1795987282381682012, -1795983493951698268},
              __mask_was_saved = 0}}, __pad = {0x7f428ca13f10, 0x0, 0x0, 0x0}}
        __cancel_routine = 0x7f4292683900 <thread_cleanup>
        __cancel_arg = 0x55b4e9e3cbe0
        __not_first_call = <optimized out>
        res = <optimized out>
#7  0x00007f42921906db in start_thread (arg=0x7f428ca14700)
    at pthread_create.c:463
        pd = 0x7f428ca14700
---Type <return> to continue, or q <return> to quit---
        now = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {139923803948800,
                1843738438814485156, 139923803946944, 0, 94235506494432,
                140731808116064, -1795987282352321884, -1795983638362240348},
              mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0},
            data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = <optimized out>
#8  0x00007f4291eb988f in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
No locals.

Thread 1 (Thread 0x7f4292aa7740 (LWP 7523)):
#0  __pthread_rwlock_wrlock_full (abstime=0x0, rwlock=0x55b4e9e28200)
    at pthread_rwlock_common.c:915
        may_share_futex_used_flag = <optimized out>
        wpf = 3923932624
        ready = false
        r = <optimized out>
        may_share_futex_used_flag = <optimized out>
        r = <optimized out>
        wpf = <optimized out>
        ready = <optimized out>
        __value = <optimized out>
---Type <return> to continue, or q <return> to quit---
        prefer_writer = <optimized out>
        private = <optimized out>
        wf = <optimized out>
        err = <optimized out>
        w = <optimized out>
        w = <optimized out>
        private = <optimized out>
        err = <optimized out>
        w = <optimized out>
        wf = <optimized out>
        wf = <optimized out>
        __value = <optimized out>
#1  __GI___pthread_rwlock_wrlock (rwlock=0x55b4e9e28200)
    at pthread_rwlock_wrlock.c:27
        result = <optimized out>
#2  0x00007f428ea9f7c9 in CRYPTO_THREAD_write_lock ()
   from /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1
No symbol table info available.
#3  0x00007f428ea6ea83 in RAND_get_rand_method ()
   from /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1
No symbol table info available.
#4  0x00007f428ea6eca0 in RAND_bytes ()
   from /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1
---Type <return> to continue, or q <return> to quit---
No symbol table info available.
#5  0x00007f428ed7e70c in get_bytes (this=<optimized out>,
    bytes=<optimized out>, buffer=<optimized out>) at openssl_rng.c:52
No locals.
#6  0x00007f42923c8037 in encrypt_content (
    label=label@entry=0x7f42924132d8 "encrypted payload", aead=0x7f426c003e70,
    mid=mid@entry=21474836480, plain=..., assoc=...,
    encrypted=encrypted@entry=0x55b4e9dfa930)
    at encoding/payloads/encrypted_payload.c:477
        iv = {ptr = 0x55b4e9e11700 "\200\020\341\351\264U", len = 16}
        padding = {ptr = 0x55b4e9e11718 "P\302\337\351\264U", len = 8}
        icv = {ptr = 0x55b4e9e11720 "", len = 16}
        crypt = {ptr = 0x55b4e9e11710 "", len = 16}
        iv_gen = 0x7f426c002b40
        rng = 0x55b4e9e110c0
        bs = <optimized out>
#7  0x00007f42923c83e7 in encrypt (this=0x55b4e9dfa8a0, mid=21474836480,
    assoc=...) at encoding/payloads/encrypted_payload.c:522
        generator = 0x55b4e9e14640
        plain = <optimized out>
        status = <optimized out>
#8  0x00007f42923c0b92 in finalize_message (this=this@entry=0x55b4e9df8f30,
    keymat=keymat@entry=0x7f42680014f0, generator=0x55b4e9e146a0,
---Type <return> to continue, or q <return> to quit---
    encrypted=0x55b4e9dfa8a0) at encoding/message.c:1817
        keymat_v1 = 0x7f42680014f0
        chunk = {
          ptr = 0x55b4e9df9aa0 "\033\",S\303uί\022\064/`\205w\273U. %\b",
          len = 28}
        lenpos = 0x55b4e9df9ab8
#9  0x00007f42923c3155 in generate (this=0x55b4e9df8f30,
    keymat=0x7f42680014f0, packet=0x7ffead6e6fb0) at encoding/message.c:1861
        generator = 0x55b4e9e146a0
        encrypted = 0x55b4e9dfa8a0
        status = <optimized out>
#10 0x00007f42923d9cdc in generate_message (this=0x7f4268000d50,
    message=0x55b4e9df8f30, packet=0x7ffead6e6fb0) at sa/ike_sa.c:1189
        status = <optimized out>
        packet = 0x7ffead6e6fb0
        message = 0x55b4e9df8f30
        this = 0x7f4268000d50
        status = <optimized out>
        status = <optimized out>
#11 0x00007f42923d9e51 in generate_message_fragmented (this=0x7f4268000d50,
    message=0x55b4e9df8f30, packets=0x7ffead6e6ff8) at sa/ike_sa.c:1247
        fragments = 0x7f42923b7b30 <log_>
        packet = 0x7f42923b7b30 <log_>
---Type <return> to continue, or q <return> to quit---
        status = <optimized out>
        use_frags = <optimized out>
        pre_generated = false
#12 0x00007f42923e7d51 in generate_message (
    message=message@entry=0x55b4e9df8f30,
    packets=packets@entry=0x7f4268001708, this=<optimized out>)
    at sa/ikev2/task_manager_v2.c:314
        fragments = 0x7f4268001620
        fragment = 0x55b4e9df8f30
#13 0x00007f42923e8373 in initiate (this=0x7f4268001620)
    at sa/ikev2/task_manager_v2.c:672
        enumerator = 0x55b4e9e110f0
        message = 0x55b4e9df8f30
        me = 0x7f4268002340
        task = 0x55b4e9e3c180
        other = 0x7f42680017d0
        this = 0x7f4268001620
        enumerator = <optimized out>
        message = <optimized out>
        me = <optimized out>
        task = <optimized out>
        other = <optimized out>
        exchange = <optimized out>
---Type <return> to continue, or q <return> to quit---
        enumerator = <optimized out>
        task = <optimized out>
        message = <optimized out>
        me = <optimized out>
        other = <optimized out>
#14 0x00007f42923d80ba in delete_ (this=0x7f4268000d50, force=<optimized out>)
    at sa/ike_sa.c:1812
        status = DESTROY_ME
#15 0x00007f42923e022d in flush (this=0x55b4e9df8370)
    at sa/ike_sa_manager.c:2269
        enumerator = 0x55b4e9e11260
        entry = 0x7f4268003720
        segment = 0
#16 0x00007f42923bf0fe in destroy (this=0x55b4e9df09b0) at daemon.c:703
No locals.
#17 libcharon_deinit () at daemon.c:970
        this = 0x55b4e9df09b0
#18 0x00007f4291ddb041 in __run_exit_handlers (status=0,
    listp=0x7f4292183718 <__exit_funcs>,
    run_list_atexit=run_list_atexit@entry=true, run_dtors=run_dtors@entry=true)
    at exit.c:108
        atfct = <optimized out>
        onfct = <optimized out>
---Type <return> to continue, or q <return> to quit---
        cxafct = <optimized out>
        f = <optimized out>
        new_exitfn_called = 6
        cur = 0x7f4292184d80 <initial>
#19 0x00007f4291ddb13a in __GI_exit (status=<optimized out>) at exit.c:139
No locals.
#20 0x00007f4291db9b9e in __libc_start_main (main=0x55b4e8e65030 <main>,
    argc=9, argv=0x7ffead6e7268, init=<optimized out>, fini=<optimized out>,
    rtld_fini=<optimized out>, stack_end=0x7ffead6e7258)
    at ../csu/libc-start.c:344
        result = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {0, -5548549521100420444,
                94235489883520, 140731808117344, 0, 0, -1843348236679165276,
                -1795979812454839644}, mask_was_saved = 0}}, priv = {pad = {
              0x0, 0x0, 0x7f42928b6733 <_dl_init+259>, 0x7f4292633958},
            data = {prev = 0x0, cleanup = 0x0, canceltype = -1836357837}}}
        not_first_call = <optimized out>
#21 0x000055b4e8e655aa in _start ()
No symbol table info available.

#3 Updated by Tobias Brunner 5 days ago

  • Subject changed from charon_cmd does not terminate after SIGINT to charon_cmd does not terminate after SIGINT when using OpenSSL 1.1
  • Assignee set to Tobias Brunner
  • Target version set to 5.7.2

If you are using OpenSSL 1.1 it might be similar to the bug fixed with cbe9e575eef5 for charon-systemd. I pushed a fix for this to the 2849-charon-cmd-deinit branch.

#4 Updated by Rainer Urian 5 days ago

Just tested. Fix seems to work.
Thank you very much!
Rainer

#5 Updated by Tobias Brunner 5 days ago

Thanks for testing. Will be included in the next release.

#6 Updated by Tobias Brunner 4 days ago

  • Status changed from Feedback to Closed
  • Resolution set to Fixed

Also available in: Atom PDF