Received: by 2002:a25:31c3:0:0:0:0:0 with SMTP id x186csp563594ybx; Tue, 5 Nov 2019 01:56:29 -0800 (PST) X-Google-Smtp-Source: APXvYqzs10WueNEYGn9i0fZ+kq0bFGp3hL1ZIBgaZBMRupJrgPqyItvjxDbfd/GOtfdo8NUeGKqb X-Received: by 2002:a50:b83d:: with SMTP id j58mr34409392ede.84.1572947789779; Tue, 05 Nov 2019 01:56:29 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1572947789; cv=none; d=google.com; s=arc-20160816; b=THft8EzMpUDolc7vAKl3t4bzS1ABrkZOvAOIBKp9L0ixYOMqA1c0NeI4+RVRWayY/h LoDZZv96wUraAg1R9cyxh+3/AGwW8/r8y21IES/40CS4vQu9VVoffpL07gZeA3TfKxwe PYFWnBJZfZ4MG07gp7ZkDWxzcyYgTDO6MGEaOKNH0Wjum3lGy0FzkHLqg1Q3qJaBwd66 dtW+7FRsWOAwMki7N8T6Uozpt13QsSkok40eiTBf2S1g+uO/O+gDgCNESw2XOFAjLzUz 70coSLc6AS0y/UrgpNoDk2AugixGYGgqpWazaBLbbMMF5gUGmBrUG66lvCyJaPqxoTcx piqw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject:dkim-signature; bh=kV7qCR/Y2pv3yHlqY5jXKOlLnNtUlZhctlJqUJO4AWw=; b=Lr8NlhJImYojzZBmSci1Dw65Ebt5DQGK52hqwzX/CbXR98NSJ22Y7qPBgg47r7pkb3 sKJWI+JNg4iRgs/+asCO6J56SH0wD11y4Gp02kF2auqr6wBcHNjnKP8XqXFjU/wU/Bm1 NT+PXBov3T+J6TtpiW4p6jXn148npbtZbb7vJZmxPsLLUXdVJpoIvcuftZF285wzeozx lKKYnNBoDtfdl1XdQNffZTT0oP30paqwC6dzScGf1AuS+nJWE0ifquSwGlan80osjk81 lk7uO5pJdu6i7ufpJwNVC4n4P4zWryTyxuwujOFDdRwapU5dBMlG9ClAA2gsKADN3g0Q 2WCg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@googlemail.com header.s=20161025 header.b=BQKdjc90; spf=pass (google.com: best guess record for domain of linux-bluetooth-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-bluetooth-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=googlemail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id e12si1265355ejr.39.2019.11.05.01.55.48; Tue, 05 Nov 2019 01:56:29 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-bluetooth-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@googlemail.com header.s=20161025 header.b=BQKdjc90; spf=pass (google.com: best guess record for domain of linux-bluetooth-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-bluetooth-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=googlemail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730615AbfKEJxe (ORCPT + 99 others); Tue, 5 Nov 2019 04:53:34 -0500 Received: from mail-wr1-f52.google.com ([209.85.221.52]:44404 "EHLO mail-wr1-f52.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730571AbfKEJxd (ORCPT ); Tue, 5 Nov 2019 04:53:33 -0500 Received: by mail-wr1-f52.google.com with SMTP id f2so11635812wrs.11 for ; Tue, 05 Nov 2019 01:53:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20161025; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=kV7qCR/Y2pv3yHlqY5jXKOlLnNtUlZhctlJqUJO4AWw=; b=BQKdjc90fXG8v4YGyi/38dNoLZtS/Hn6gI6/aWpgblV7xnYAkaMLvl8wPPwKi+rzyO EOSGWDDkPMnQ5xlKVG9SZ76BeVxlI03oBqAmKTGA5VLDCC7abwt5vhrRDU3dO3YNQTMI YBkeMyilavo7ogekER+qGjI1mFWRw0OeSMFJLupupmg94gsa/84d5Ec9zY1w29VPsujC 3UpB6yFtxZxOxPX8wI4T5lJlRY0Wn6WDhAlrLPUBeu7N3RaGE0hFzgjsMX2L1azOPGAS 3N8RjU/UurXq7tSLJCCZLVKiL+RaKShuTwiwzTgxC6CxwS1XUYHFx3OP5hrP+tNEhJdN tlKg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=kV7qCR/Y2pv3yHlqY5jXKOlLnNtUlZhctlJqUJO4AWw=; b=rQsIeboUi6et3uhiQgiScoKjVFlknJsw3BrRK4Yk3Nf0RCQlPksSyanYOULyrcRyNd uL50d9IhC96ulxm/vzMa+dZWkZdxpq/+dwXyik//7RvxAAUIFruD/v1/SEuLkUkVs6w6 9MTzV3luG9WiNcFgonjnl0xAb25H5D0KxRGJgo//Ml0RAq6wEg6XHL1ojLUzM/fMWECI gogPFh/43cC9yjap91K5xLfzz3FCgD8OZuQFcOyOaTA3+LtLoYEXR7OOUV2+/NgGnFyp 5/DI8X8P1XAh5jAXVOgl3TydQRFcbtt7l5lGly3XOHq1+trUnQN6jv7BDGjDunM2T/54 zs3w== X-Gm-Message-State: APjAAAVx/KYkzazsu4TMYBpF85YJN/Z4FRfjIwhhy45F0E+PoAddEGNo h7O929QO1DOs1xfKqns1wk8= X-Received: by 2002:adf:f192:: with SMTP id h18mr28910229wro.148.1572947609083; Tue, 05 Nov 2019 01:53:29 -0800 (PST) Received: from [192.168.201.5] (p4FD25546.dip0.t-ipconnect.de. [79.210.85.70]) by smtp.googlemail.com with ESMTPSA id d11sm24114298wrf.80.2019.11.05.01.53.27 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 05 Nov 2019 01:53:28 -0800 (PST) Subject: Re: test-mesh-crypto segfaults To: "Gix, Brian" , "linux-bluetooth@vger.kernel.org" Cc: "Stotland, Inga" References: <5f75011d-a157-cab2-72df-0209f7a30f21@message-id.googlemail.com> <70299d5df034aa0174a9263ea8736b56fd9bbd02.camel@intel.com> From: Stefan Seyfried Message-ID: Date: Tue, 5 Nov 2019 10:53:24 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.1.1 MIME-Version: 1.0 In-Reply-To: <70299d5df034aa0174a9263ea8736b56fd9bbd02.camel@intel.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-bluetooth-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-bluetooth@vger.kernel.org Hi Brian, One thing I forgot to mention explicitly: this is the recently released bluez-5.52 tarball, not git master(!). Also note that openSUSE Factory use LTO by default now. from config.log: It was created by bluez configure 5.52, which was generated by GNU Autoconf 2.69. Invocation command line was $ ./configure --host=x86_64-suse-linux-gnu --build=x86_64-suse-linux-gnu --program-prefix= --disable-dependency-tracking --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib64 --libexecdir=/usr/lib --localstatedir=/var --sharedstatedir=/var/lib --mandir=/usr/share/man --infodir=/usr/share/info --disable-dependency-tracking --disable-silent-rules --enable-pie --enable-library --enable-tools --enable-cups --enable-mesh --enable-midi --enable-test --enable-experimental --enable-deprecated --enable-datafiles --enable-sixaxis --with-systemdsystemunitdir=/usr/lib/systemd/system --with-systemduserunitdir=/usr/lib/systemd/user [...] ac_cv_env_CFLAGS_value='-O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -g' Am 04.11.19 um 23:11 schrieb Gix, Brian: > Hi Stefan, > > On Mon, 2019-11-04 at 22:16 +0100, Stefan Seyfried wrote: >> Hi, >> >> test-mesh-crypto segfaults for me. >> >> abuild@strolchi:~/rpmbuild/BUILD/bluez-5.52> gdb unit/test-mesh-crypto >> >> [....] >> >> [8.6.2 Service Data using Node Identity] >> ID Resolving Key = 84396c435ac48560b5965385253e210c >> 84396c435ac48560b5965385253e210c => PASS >> Hash Input = 00000000000034ae608fbbc1f2c61201 >> 00000000000034ae608fbbc1f2c61201 => PASS >> Hash = 00861765aefcc57b >> 00861765aefcc57b => PASS >> Mesh ID Beacon = 0100861765aefcc57b34ae608fbbc1f2c6 >> 0100861765aefcc57b34ae608fbbc1f2c6 => PASS >> > > This is very strange. The unit test looks like it has completed successfully (at least from what you copy- > pasted). That test 8.6.2 is the final test, and it looks happy. Can you verify for me that all the other > tests completed successfully? yes, all previous tests passed successfully. > There is a *small* chance that you could be running on an old kernel: Kernels version 4.8 and before had a > bug in the AEAD crypto code that made mesh code (including this unit test) inoperable... But this should show > up *first* in one of the earlier tests within this unit test... so look for any FAIL designations. This is 5.4.0rc5 right now. > The other thing about this particular test is that it is the *only* bluez unit test which is based on ELL > (Embedded Linux Library) instead of GLIB. > > Are you running from an installed ELL when compiling bluez, or do you have ELL in a "peer directory"... For > instance: > > .../work/ell > .../work/bluez no, I am using the embedded ell library AFAICT. I had "ell-devel" installed in the build root, but it is not used apparently. Nothing changes if I do not install ell-devel. ell-devel and libell0 are old versions (0.23), but again, removing them from the buildroot does not change things. > If you have the ELL source code available, please try running: > ell % make check > > paying particular attention to the output of: > unit/test-cipher > > If unit/test-cipher in ELL passes, then unit/test-mesh-crypto in BLUEZ should pass. I suppose it should work with the ell embedded in bluez-5.52 ;-) >> Program received signal SIGSEGV, Segmentation fault. >> 0x00007ffff7e874ae in mem2chunk_check () from /lib64/libc.so.6 >> (gdb) bt >> #0 0x00007ffff7e874ae in mem2chunk_check () from /lib64/libc.so.6 >> #1 0x00007ffff7e8b6af in free_check () from /lib64/libc.so.6 >> #2 0x0000555555557c98 in l_free (ptr=) at ell/util.c:136 >> #3 l_queue_clear (queue=0x55555556d010, destroy=0x555555557c60 >> ) at ell/queue.c:107 I was intrigued by the lots of 0x55 bytes in these pointers(?) and checked if MALLOC_PERTURB_ and MALLOC_CHECK_ values make a difference. openSUSE Factory by default builds with abuild@strolchi:~/rpmbuild/BUILD/bluez-5.52> echo $MALLOC_CHECK_ 3 abuild@strolchi:~/rpmbuild/BUILD/bluez-5.52> echo $MALLOC_PERTURB_ 69 unsetting both leads to an abort() instead of a segfault, but I think that's just a distraction: ~> unit/test-mesh-crypto [...] [8.6.2 Service Data using Node Identity] ID Resolving Key = 84396c435ac48560b5965385253e210c 84396c435ac48560b5965385253e210c => PASS Hash Input = 00000000000034ae608fbbc1f2c61201 00000000000034ae608fbbc1f2c61201 => PASS Hash = 00861765aefcc57b 00861765aefcc57b => PASS Mesh ID Beacon = 0100861765aefcc57b34ae608fbbc1f2c6 0100861765aefcc57b34ae608fbbc1f2c6 => PASS [8.6.2 Service Data using Node Identity] ID Resolving Key = 84396c435ac48560b5965385253e210c 84396c435ac48560b5965385253e210c => PASS Hash Input = 00000000000034ae608fbbc1f2c61201 00000000000034ae608fbbc1f2c61201 => PASS Hash = 00861765aefcc57b 00861765aefcc57b => PASS Mesh ID Beacon = 0100861765aefcc57b34ae608fbbc1f2c6 0100861765aefcc57b34ae608fbbc1f2c6 => PASS free(): invalid size Aborted (core dumped) in gdb: Program received signal SIGABRT, Aborted. 0x00007ffff7e3d0d1 in raise () from /lib64/libc.so.6 (gdb) bt #0 0x00007ffff7e3d0d1 in raise () from /lib64/libc.so.6 #1 0x00007ffff7e2655d in abort () from /lib64/libc.so.6 #2 0x00007ffff7e8045f in __libc_message () from /lib64/libc.so.6 #3 0x00007ffff7e878fc in malloc_printerr () from /lib64/libc.so.6 #4 0x00007ffff7e892ec in _int_free () from /lib64/libc.so.6 #5 0x0000555555557ca4 in l_free (ptr=) at ell/util.c:136 #6 l_queue_clear (queue=0x55555556d2a0, destroy=0x555555557c60 ) at ell/queue.c:111 #7 0x0000555555557210 in _sub_D_65535_1.7021 () at ell/cipher.c:319 #8 0x00007ffff7fe2c13 in _dl_fini () from /lib64/ld-linux-x86-64.so.2 #9 0x00007ffff7e3f877 in __run_exit_handlers () from /lib64/libc.so.6 #10 0x00007ffff7e3fa2c in exit () from /lib64/libc.so.6 #11 0x00007ffff7e27e12 in __libc_start_main () from /lib64/libc.so.6 #12 0x0000555555557b8a in _start () at ../sysdeps/x86_64/start.S:120 free(): invalid size Aborted (core dumped) Valgrind also complains, so I guess something is wrong in libell: ==28744== Invalid read of size 8 ==28744== at 0x10BC7E: l_queue_clear.constprop.0 (queue.c:101) ==28744== by 0x10B20F: _sub_D_65535_1.7021 (in /home/abuild/rpmbuild/BUILD/bluez-5.52/unit/test-mesh-crypto) ==28744== by 0x400FC12: _dl_fini (in /lib64/ld-2.30.so) ==28744== by 0x4889876: __run_exit_handlers (in /lib64/libc-2.30.so) ==28744== by 0x4889A2B: exit (in /lib64/libc-2.30.so) ==28744== by 0x4871E11: (below main) (in /lib64/libc-2.30.so) ==28744== Address 0x4a15040 is 0 bytes inside a block of size 24 free'd ==28744== at 0x48389AB: free (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==28744== by 0x10B207: _sub_D_65535_1.7021 (in /home/abuild/rpmbuild/BUILD/bluez-5.52/unit/test-mesh-crypto) ==28744== by 0x400FC12: _dl_fini (in /lib64/ld-2.30.so) ==28744== by 0x4889876: __run_exit_handlers (in /lib64/libc-2.30.so) ==28744== by 0x4889A2B: exit (in /lib64/libc-2.30.so) ==28744== by 0x4871E11: (below main) (in /lib64/libc-2.30.so) ==28744== Block was alloc'd at ==28744== at 0x483777F: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==28744== by 0x10C80D: l_malloc (util.c:62) ==28744== by 0x10B275: UnknownInlinedFun (queue.c:63) ==28744== by 0x10B275: l_debug_add_section.constprop.0 (log.c:376) ==28744== by 0x10B308: _sub_I_65535_0.7019 (queue.c:179) ==28744== by 0x1119E4: __libc_csu_init (elf-init.c:88) ==28744== by 0x4871D99: (below main) (in /lib64/libc-2.30.so) ==28744== ==28744== Invalid write of size 8 ==28744== at 0x10BCA9: l_queue_clear.constprop.0 (queue.c:114) ==28744== by 0x10B20F: _sub_D_65535_1.7021 (in /home/abuild/rpmbuild/BUILD/bluez-5.52/unit/test-mesh-crypto) ==28744== by 0x400FC12: _dl_fini (in /lib64/ld-2.30.so) ==28744== by 0x4889876: __run_exit_handlers (in /lib64/libc-2.30.so) ==28744== by 0x4889A2B: exit (in /lib64/libc-2.30.so) ==28744== by 0x4871E11: (below main) (in /lib64/libc-2.30.so) ==28744== Address 0x4a15040 is 0 bytes inside a block of size 24 free'd ==28744== at 0x48389AB: free (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==28744== by 0x10B207: _sub_D_65535_1.7021 (in /home/abuild/rpmbuild/BUILD/bluez-5.52/unit/test-mesh-crypto) ==28744== by 0x400FC12: _dl_fini (in /lib64/ld-2.30.so) ==28744== by 0x4889876: __run_exit_handlers (in /lib64/libc-2.30.so) ==28744== by 0x4889A2B: exit (in /lib64/libc-2.30.so) ==28744== by 0x4871E11: (below main) (in /lib64/libc-2.30.so) ==28744== Block was alloc'd at ==28744== at 0x483777F: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==28744== by 0x10C80D: l_malloc (util.c:62) ==28744== by 0x10B275: UnknownInlinedFun (queue.c:63) ==28744== by 0x10B275: l_debug_add_section.constprop.0 (log.c:376) ==28744== by 0x10B308: _sub_I_65535_0.7019 (queue.c:179) ==28744== by 0x1119E4: __libc_csu_init (elf-init.c:88) ==28744== by 0x4871D99: (below main) (in /lib64/libc-2.30.so) ==28744== ==28744== Invalid write of size 8 ==28744== at 0x10BCB1: l_queue_clear.constprop.0 (queue.c:115) ==28744== by 0x10B20F: _sub_D_65535_1.7021 (in /home/abuild/rpmbuild/BUILD/bluez-5.52/unit/test-mesh-crypto) ==28744== by 0x400FC12: _dl_fini (in /lib64/ld-2.30.so) ==28744== by 0x4889876: __run_exit_handlers (in /lib64/libc-2.30.so) ==28744== by 0x4889A2B: exit (in /lib64/libc-2.30.so) ==28744== by 0x4871E11: (below main) (in /lib64/libc-2.30.so) ==28744== Address 0x4a15048 is 8 bytes inside a block of size 24 free'd ==28744== at 0x48389AB: free (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==28744== by 0x10B207: _sub_D_65535_1.7021 (in /home/abuild/rpmbuild/BUILD/bluez-5.52/unit/test-mesh-crypto) ==28744== by 0x400FC12: _dl_fini (in /lib64/ld-2.30.so) ==28744== by 0x4889876: __run_exit_handlers (in /lib64/libc-2.30.so) ==28744== by 0x4889A2B: exit (in /lib64/libc-2.30.so) ==28744== by 0x4871E11: (below main) (in /lib64/libc-2.30.so) ==28744== Block was alloc'd at ==28744== at 0x483777F: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==28744== by 0x10C80D: l_malloc (util.c:62) ==28744== by 0x10B275: UnknownInlinedFun (queue.c:63) ==28744== by 0x10B275: l_debug_add_section.constprop.0 (log.c:376) ==28744== by 0x10B308: _sub_I_65535_0.7019 (queue.c:179) ==28744== by 0x1119E4: __libc_csu_init (elf-init.c:88) ==28744== by 0x4871D99: (below main) (in /lib64/libc-2.30.so) ==28744== ==28744== Invalid write of size 4 ==28744== at 0x10BCB9: l_queue_clear.constprop.0 (queue.c:116) ==28744== by 0x10B20F: _sub_D_65535_1.7021 (in /home/abuild/rpmbuild/BUILD/bluez-5.52/unit/test-mesh-crypto) ==28744== by 0x400FC12: _dl_fini (in /lib64/ld-2.30.so) ==28744== by 0x4889876: __run_exit_handlers (in /lib64/libc-2.30.so) ==28744== by 0x4889A2B: exit (in /lib64/libc-2.30.so) ==28744== by 0x4871E11: (below main) (in /lib64/libc-2.30.so) ==28744== Address 0x4a15050 is 16 bytes inside a block of size 24 free'd ==28744== at 0x48389AB: free (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==28744== by 0x10B207: _sub_D_65535_1.7021 (in /home/abuild/rpmbuild/BUILD/bluez-5.52/unit/test-mesh-crypto) ==28744== by 0x400FC12: _dl_fini (in /lib64/ld-2.30.so) ==28744== by 0x4889876: __run_exit_handlers (in /lib64/libc-2.30.so) ==28744== by 0x4889A2B: exit (in /lib64/libc-2.30.so) ==28744== by 0x4871E11: (below main) (in /lib64/libc-2.30.so) ==28744== Block was alloc'd at ==28744== at 0x483777F: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==28744== by 0x10C80D: l_malloc (util.c:62) ==28744== by 0x10B275: UnknownInlinedFun (queue.c:63) ==28744== by 0x10B275: l_debug_add_section.constprop.0 (log.c:376) ==28744== by 0x10B308: _sub_I_65535_0.7019 (queue.c:179) ==28744== by 0x1119E4: __libc_csu_init (elf-init.c:88) ==28744== by 0x4871D99: (below main) (in /lib64/libc-2.30.so) ==28744== ==28744== Invalid free() / delete / delete[] / realloc() ==28744== at 0x48389AB: free (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==28744== by 0x400FC12: _dl_fini (in /lib64/ld-2.30.so) ==28744== by 0x4889876: __run_exit_handlers (in /lib64/libc-2.30.so) ==28744== by 0x4889A2B: exit (in /lib64/libc-2.30.so) ==28744== by 0x4871E11: (below main) (in /lib64/libc-2.30.so) ==28744== Address 0x4a15040 is 0 bytes inside a block of size 24 free'd ==28744== at 0x48389AB: free (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==28744== by 0x10B207: _sub_D_65535_1.7021 (in /home/abuild/rpmbuild/BUILD/bluez-5.52/unit/test-mesh-crypto) ==28744== by 0x400FC12: _dl_fini (in /lib64/ld-2.30.so) ==28744== by 0x4889876: __run_exit_handlers (in /lib64/libc-2.30.so) ==28744== by 0x4889A2B: exit (in /lib64/libc-2.30.so) ==28744== by 0x4871E11: (below main) (in /lib64/libc-2.30.so) ==28744== Block was alloc'd at ==28744== at 0x483777F: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==28744== by 0x10C80D: l_malloc (util.c:62) ==28744== by 0x10B275: UnknownInlinedFun (queue.c:63) ==28744== by 0x10B275: l_debug_add_section.constprop.0 (log.c:376) ==28744== by 0x10B308: _sub_I_65535_0.7019 (queue.c:179) ==28744== by 0x1119E4: __libc_csu_init (elf-init.c:88) ==28744== by 0x4871D99: (below main) (in /lib64/libc-2.30.so) ==28744== ==28744== ==28744== HEAP SUMMARY: ==28744== in use at exit: 0 bytes in 0 blocks ==28744== total heap usage: 773 allocs, 774 frees, 18,598 bytes allocated ==28744== ==28744== All heap blocks were freed -- no leaks are possible ==28744== ==28744== For lists of detected and suppressed errors, rerun with: -s ==28744== ERROR SUMMARY: 5 errors from 5 contexts (suppressed: 0 from 0) Somehow I'm unable to get proper debuginfo and better output from valgrind and gdb, so in a last desparate attempt I disabled LTO for my build and now the test does not fail. I'm going to file a bug for the openSUSE toolchain team for the LTO failure, but it is well possible that they will come back and point to issues in ell or bluez, so stay tuned ;-) the difference LTO vs non-LTO is: LTO: CFLAGS='-O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -g' Non-LTO: CFLAGS='-O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -g' Best regards, -- Stefan Seyfried "For a successful technology, reality must take precedence over public relations, for nature cannot be fooled." -- Richard Feynman