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_5_7~12 X-Git-Url: http://git.ipfire.org/gitweb/gitweb.cgi?a=commitdiff_plain;h=e95ed123bb7a64f6cb1bca7ab0ea2c01669a9f2d;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 ba21b6e391..d6ee15e2d0 100644 --- a/src/acl/external/session/ext_session_acl.cc +++ b/src/acl/external/session/ext_session_acl.cc @@ -197,13 +197,19 @@ copyValue(void *dst, const DB_ENTRY *src, size_t sz) static int session_active(const char *details, size_t len) { #if USE_BERKLEYDB - DBT key = {0}; - DBT data = {0}; - key.data = (void *)details; + DBT key = {}; + key.data = const_cast(details); key.size = len; + + DBT data = {}; #elif USE_TRIVIALDB - TDB_DATA key; - TDB_DATA data; + TDB_DATA key = {}; + key.dptr = reinterpret_cast(const_cast(details)); + key.dsize = len; + + TDB_DATA data = {}; +#else + (void)len; #endif if (fetchKey(key, &data)) { time_t timestamp;