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.
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.