From d85265eab4f9344f0d08330f737ce9d7be32d716 Mon Sep 17 00:00:00 2001 From: Ilya Dryomov Date: Tue, 11 Nov 2025 21:39:58 +0100 Subject: [PATCH] qa/valgrind.supp: make gcm_cipher_internal suppression more resilient gcm_cipher_internal() and ossl_gcm_stream_final() make it to the stack trace only on CentOS Stream 9. On Ubuntu 22.04 and Rocky 10, it looks as follows: Thread 4 msgr-worker-1: Conditional jump or move depends on uninitialised value(s) at 0x70A36D4: ??? (in /usr/lib64/libcrypto.so.3.2.2) by 0x70A39A1: ??? (in /usr/lib64/libcrypto.so.3.2.2) by 0x6F8A09C: EVP_DecryptFinal_ex (in /usr/lib64/libcrypto.so.3.2.2) by 0xB498C1F: ceph::crypto::onwire::AES128GCM_OnWireRxHandler::authenticated_decrypt_update_final(ceph::buffer::v15_2_0::list&) (crypto_onwire.cc:271) by 0xB4992D7: ceph::msgr::v2::FrameAssembler::disassemble_preamble(ceph::buffer::v15_2_0::list&) (frames_v2.cc:281) by 0xB482D98: ProtocolV2::handle_read_frame_preamble_main(std::unique_ptr&&, int) (ProtocolV2.cc:1149) by 0xB475318: ProtocolV2::run_continuation(Ct&) (ProtocolV2.cc:54) by 0xB457012: AsyncConnection::process() (AsyncConnection.cc:495) by 0xB49E61A: EventCenter::process_events(unsigned int, std::chrono::duration >*) (Event.cc:492) by 0xB49EA9D: UnknownInlinedFun (Stack.cc:50) by 0xB49EA9D: UnknownInlinedFun (invoke.h:61) by 0xB49EA9D: UnknownInlinedFun (invoke.h:111) by 0xB49EA9D: std::_Function_handler::_M_invoke(std::_Any_data const&) (std_function.h:290) by 0xBB11063: ??? (in /usr/lib64/libstdc++.so.6.0.33) by 0x4F17119: start_thread (in /usr/lib64/libc.so.6) The proposal to amend the existing suppression so that it's tied to the specific callsite rather than libcrypto internals [1] received a thumbs up from Radoslaw. [1] https://github.com/ceph/ceph/pull/61689#issuecomment-2650179891 Fixes: https://tracker.ceph.com/issues/74672 Signed-off-by: Ilya Dryomov --- qa/valgrind.supp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/qa/valgrind.supp b/qa/valgrind.supp index 627456b0dd29..3a6a9c38cd53 100644 --- a/qa/valgrind.supp +++ b/qa/valgrind.supp @@ -791,11 +791,10 @@ { uninitialized value in gcm_cipher_internal Memcheck:Cond + obj:*libcrypto* ... - fun:gcm_cipher_internal - ... - fun:ossl_gcm_stream_final fun:EVP_DecryptFinal_ex + fun:*ceph*crypto*onwire*AES128GCM_OnWireRxHandler*authenticated_decrypt_update_final* ... } { -- 2.47.3