Skip to content

nss_cache: fix fd leaks#87

Open
kmjohansen wants to merge 1 commit intogoogle:mainfrom
kmjohansen:johansen/fd-leaks
Open

nss_cache: fix fd leaks#87
kmjohansen wants to merge 1 commit intogoogle:mainfrom
kmjohansen:johansen/fd-leaks

Conversation

@kmjohansen
Copy link

When running libnss-cache behind nscd, this author observed fd leaks that corresponded to cache files. In the scenario in which the leaks occurred, the leaked fds prevented old deleted cache files from getting freed on disk, and resulted in the root volume filling up.

An audit of the nss_cache module found multiple paths where it was possible to leak a FILE pointer that would in turn result in a fd being leaked. After applying this fix, none of the leaks reoccurred, even after 24+ hours of testing.

For the changes outside of _nss_cache_bsearch2, the fix mimics the behavior in the internal glibc functions. E.g. if the FILE pointer is NULL, open the file. Otherwise, rewind the FILE.

When running libnss-cache behind nscd, this author observed a large
number of fd leaks that corresponded to cache files.  In the scenario in
which the leaks occurred, the leaked fds prevented old deleted cache
files from getting freed on disk, and resulted in the root volume
filling up.

An audit of the nss_cache module found multiple paths where it was
possible to leak a FILE pointer that would in turn result in a fd being
leaked.  After applying this fix, none of the leaks reoccurred, even
after 24+ hours of testing.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant