pikhq / musl-nscd

Musl-nscd is an implementation of the NSCD protocol, suitable for use with musl and with standard NSS modules
Other
46 stars 14 forks source link

Fix resource leak in listening thread. #18

Closed ericonr closed 3 years ago

ericonr commented 3 years ago

The thread launched to listen on the socket while the nscd request is processed was being written to a temporary thread_t. This means the thread couldn't be pthread_join'd, which is what would release its resources (which includes the memory allocated for the thread's stack), and this allocation would live on until nscd is killed. To avoid having to control the thread lifetime, we can simply pthread_detach it, which makes it so returning from the thread function releases its resources.

This commit fixes an issue where practically each new nscd request would add (thread stack size + guard page size) bytes to the memory in use by nscd.