From dfbef72d3e433d5bf64abae5905f6245f10e2b1f Mon Sep 17 00:00:00 2001 From: Francesco Chemolli Date: Wed, 22 Jun 2022 21:05:42 +0000 Subject: [PATCH] ext_session_acl: fix TDB key lookup (#1064) When built with Samba TrivialDB, ext_session_acl would never successfully look a session up due to an uninitialized key argument. As a result, the helper would be unable to validate that an user had logged in. Broken since TrivialDB support was added in acd207a. Detected by Coverity. CID 1441979: Uninitialized scalar variable (UNINIT). --- src/acl/external/session/ext_session_acl.cc | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/acl/external/session/ext_session_acl.cc b/src/acl/external/session/ext_session_acl.cc index f25277f105..3838071f11 100644 --- a/src/acl/external/session/ext_session_acl.cc +++ b/src/acl/external/session/ext_session_acl.cc @@ -198,13 +198,16 @@ static int session_active(const char *details, size_t len) { #if USE_BERKLEYDB DBT key = {}; - DBT data = {}; - key.data = (void *)details; + key.data = const_cast(details); key.size = len; + + DBT data = {}; #elif USE_TRIVIALDB - TDB_DATA key; - TDB_DATA data; - (void)len; + TDB_DATA key = {}; + key.dptr = reinterpret_cast(const_cast(details)); + key.dsize = len; + + TDB_DATA data = {}; #else (void)len; #endif -- 2.47.2