#3731 nss_clear_netgroup_hash_table(): only remove entries from the hash table, do not free them
Closed: Fixed 5 years ago Opened 5 years ago by sbose.

nss_clear_netgroup_hash_table() is called during the clearEnumCache SBUS request, which is e.g. used during 'sss_cache -E', to remove netgroup data cached in the memory of the NSS responder.

Currently nss_clear_netgroup_hash_table() calls 'sss_ptr_hash_delete_all(nss_ctx->netgrent, true);' which not only removes all entries in the 'netgerent' hash table but frees them as well.

The second step is not needed because nss_setnetgrent_set_timeout() takes care that the data is freed after a timeout. Additionally freeing the data in nss_clear_netgroup_hash_table() can even do harm when the request is received by the NSS responder while waiting for the backend to acquire the netgroup data. Because if the backend is done the NSS responder tries do use enum_ctx which might have been freed in the meantime.

Because of this nss_clear_netgroup_hash_table() should only remove the data from the hash table but not free it.


Metadata Update from @sbose:
- Issue assigned to sbose

5 years ago

Metadata Update from @sbose:
- Custom field patch adjusted to on

5 years ago

Commit b13cc2d relates to this ticket

master:
b13cc2d

@sbose, do we also need this patch backported to 1-13/1-14?

Metadata Update from @fidencio:
- Issue close_status updated to: Fixed
- Issue status updated to: Closed (was: Open)

5 years ago

@fidencio, no this issue was introduced with the cache_req changes. SSSD-1.14 and older use nss_orphan_netgroups() which only removes the entries and does not delete them.

SSSD is moving from Pagure to Github. This means that new issues and pull requests
will be accepted only in SSSD's github repository.

This issue has been cloned to Github and is available here:
- https://github.com/SSSD/sssd/issues/4740

If you want to receive further updates on the issue, please navigate to the github issue
and click on subscribe button.

Thank you for understanding. We apologize for all inconvenience.

Login to comment on this ticket.

Metadata