URL:
https://github.com/SSSD/sssd/pull/289
Title: #289: Check the timestamp cache during the users/groups cleanup
jhrozek commented:
"""
There are some warnings:
```
Error: UNUSED_VALUE (CWE-563):
sssd-1.15.3/src/db/sysdb_ops.c:5078: value_overwrite: Overwriting previous write to
"ret" with value "0".
sssd-1.15.3/src/db/sysdb_ops.c:5071: returned_value: Assigning value from
"sysdb_error_to_errno(ret)" to "ret" here, but that stored value is
overwritten before it can be used.
# 5069| ret = ldb_modify(dom->sysdb->ldb_ts, msg);
# 5070| if (ret != LDB_SUCCESS) {
# 5071|-> ret = sysdb_error_to_errno(ret);
# 5072| DEBUG(SSSDBG_MINOR_FAILURE,
# 5073| "Could not mark an entry as expired in the timestamp
cache\n");
Error: UNINIT (CWE-457):
sssd-1.15.3/src/providers/ldap/ldap_id_cleanup.c:172: var_decl: Declaring variable
"tmp_ctx" without initializer.
sssd-1.15.3/src/providers/ldap/ldap_id_cleanup.c:215: uninit_use_in_call: Using
uninitialized value "tmp_ctx" when calling "_talloc_free".
# 213|
# 214| done:
# 215|-> talloc_zfree(tmp_ctx);
# 216| return ret;
# 217| }
Error: UNINIT (CWE-457):
sssd-1.15.3/src/providers/ldap/ldap_id_cleanup.c:240: var_decl: Declaring variable
"count" without initializer.
sssd-1.15.3/src/providers/ldap/ldap_id_cleanup.c:312: uninit_use_in_call: Using
uninitialized value "count" when calling "sss_debug_fn".
# 310| }
# 311|
# 312|-> DEBUG(SSSDBG_FUNC_DATA, "Found %zu expired user entries!\n",
count);
# 313|
# 314| if (count == 0) {
Error: UNINIT (CWE-457):
sssd-1.15.3/src/providers/ldap/ldap_id_cleanup.c:240: var_decl: Declaring variable
"count" without initializer.
sssd-1.15.3/src/providers/ldap/ldap_id_cleanup.c:314: uninit_use: Using uninitialized
value "count".
# 312| DEBUG(SSSDBG_FUNC_DATA, "Found %zu expired user entries!\n",
count);
# 313|
# 314|-> if (count == 0) {
# 315| ret = EOK;
# 316| goto done;
Error: UNINIT (CWE-457):
sssd-1.15.3/src/providers/ldap/ldap_id_cleanup.c:239: var_decl: Declaring variable
"msgs" without initializer.
sssd-1.15.3/src/providers/ldap/ldap_id_cleanup.c:329: uninit_use: Using uninitialized
value "msgs".
# 327|
# 328| for (i = 0; i < count; i++) {
# 329|-> name = ldb_msg_find_attr_as_string(msgs[i], SYSDB_NAME, NULL);
# 330| if (!name) {
# 331| DEBUG(SSSDBG_OP_FAILURE, "Entry %s has no Name Attribute
?!?\n",
Error: UNINIT (CWE-457):
sssd-1.15.3/src/providers/ldap/ldap_id_cleanup.c:461: var_decl: Declaring variable
"count" without initializer.
sssd-1.15.3/src/providers/ldap/ldap_id_cleanup.c:519: uninit_use_in_call: Using
uninitialized value "count" when calling "sss_debug_fn".
# 517| }
# 518|
# 519|-> DEBUG(SSSDBG_FUNC_DATA, "Found %zu expired group entries!\n",
count);
# 520|
# 521| if (count == 0) {
Error: UNINIT (CWE-457):
sssd-1.15.3/src/providers/ldap/ldap_id_cleanup.c:461: var_decl: Declaring variable
"count" without initializer.
sssd-1.15.3/src/providers/ldap/ldap_id_cleanup.c:521: uninit_use: Using uninitialized
value "count".
# 519| DEBUG(SSSDBG_FUNC_DATA, "Found %zu expired group entries!\n",
count);
# 520|
# 521|-> if (count == 0) {
# 522| ret = EOK;
# 523| goto done;
Error: UNINIT (CWE-457):
sssd-1.15.3/src/providers/ldap/ldap_id_cleanup.c:460: var_decl: Declaring variable
"msgs" without initializer.
sssd-1.15.3/src/providers/ldap/ldap_id_cleanup.c:529: uninit_use: Using uninitialized
value "msgs".
# 527| char *sanitized_dn;
# 528|
# 529|-> dn = ldb_dn_get_linearized(msgs[i]->dn);
# 530| if (!dn) {
# 531| DEBUG(SSSDBG_CRIT_FAILURE, "Cannot linearize DN!\n");
```
"""
See the full comment at
https://github.com/SSSD/sssd/pull/289#issuecomment-304888982