From: Francesco Chemolli Date: Wed, 22 Jun 2022 21:05:42 +0000 (+0000) Subject: ext_session_acl: fix TDB key lookup (#1064) X-Git-Tag: SQUID_6_0_1~164 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=dfbef72d3e433d5bf64abae5905f6245f10e2b1f;p=thirdparty%2Fsquid.git 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). --- 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