From: huaraz Date: Fri, 17 Jan 2025 17:08:18 +0000 (+0000) Subject: Fix GCC v14 [-Wanalyzer-null-dereference] warnings in Kerberos (#1983) X-Git-Tag: SQUID_7_0_1~4 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d2437a2f9a0d133d31701b2fe03b6fa8029e5f5a;p=thirdparty%2Fsquid.git Fix GCC v14 [-Wanalyzer-null-dereference] warnings in Kerberos (#1983) src/acl/external/kerberos_ldap_group/support_sasl.cc:190:17: error: dereference of NULL 'defs' [CWE-476] [-Wanalyzer-null-dereference] src/auth/negotiate/kerberos/negotiate_kerberos_pac.cc:235:19: error: dereference of NULL 'Rids' [CWE-476] [-Wanalyzer-null-dereference] --- diff --git a/src/acl/external/kerberos_ldap_group/support_sasl.cc b/src/acl/external/kerberos_ldap_group/support_sasl.cc index 1b62c62e5f..8f533d09b3 100644 --- a/src/acl/external/kerberos_ldap_group/support_sasl.cc +++ b/src/acl/external/kerberos_ldap_group/support_sasl.cc @@ -185,16 +185,16 @@ void lutil_sasl_freedefs( void *defaults) { - lutilSASLdefaults *defs = (lutilSASLdefaults *) defaults; - - xfree(defs->mech); - xfree(defs->realm); - xfree(defs->authcid); - xfree(defs->passwd); - xfree(defs->authzid); - xfree(defs->resps); - - xfree(defs); + if (const auto defs = static_cast(defaults)) { + xfree(defs->mech); + xfree(defs->realm); + xfree(defs->authcid); + xfree(defs->passwd); + xfree(defs->authzid); + xfree(defs->resps); + + xfree(defs); + } } int diff --git a/src/auth/negotiate/kerberos/negotiate_kerberos_pac.cc b/src/auth/negotiate/kerberos/negotiate_kerberos_pac.cc index 494024f8e7..a9e1e3bad1 100644 --- a/src/auth/negotiate/kerberos/negotiate_kerberos_pac.cc +++ b/src/auth/negotiate/kerberos/negotiate_kerberos_pac.cc @@ -205,6 +205,12 @@ getdomaingids(char *ad_groups, uint32_t DomainLogonId, char **Rids, uint32_t Gro return nullptr; } + if (!Rids) { + debug((char *) "%s| %s: ERR: Invalid RIDS list\n", + LogTime(), PROGRAM); + return nullptr; + } + if (DomainLogonId!= 0) { uint8_t rev; uint64_t idauth;