Created attachment 194258 [details]
There may be a potential memory leak in sbin/umount. In function umountfs there is a call to getaddrinfo. According to getaddrinfo.3:
"All of the information returned by getaddrinfo() is dynamically allo-
cated: the addrinfo structures themselves as well as the socket address
structures and the canonical host name strings included in the addrinfo
Memory allocated for the dynamically allocated structures created by a
successful call to getaddrinfo() is released by the freeaddrinfo() func-
tion. The ai pointer should be a addrinfo structure created by a call to
However, the whole file umount.c does not make a single call to freeaddrinfo().
It would be better to free the addrinfo with freeaddrinfo to prevent a potential memory leak.
Can you confirm this problem?
I've attached a patch as a possible solution.
addrinfo allocation is limited to at most one per NFS mountpoint to be unmounted, and memory is freed at program exit. I don't see a problem.
(In reply to Conrad Meyer from comment #1)
Conrad, good point! Nevertheless, the base system code should be a good example how to properly use the library functions, in this case getaddrinfo/freeaddrinfo.