Red Hat Bugzilla – Bug 179980
udevstart leaks filedescriptors
Last modified: 2007-11-30 17:11:23 EST
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:220.127.116.11) Gecko/20060202 Fedora/18.104.22.168-2 Firefox/22.214.171.124
Description of problem:
/sbin/udevstart leaks filedescriptors because modalias_is_greylisted() does not call close(). A box with many multi-USB controllers and many devices per controller could overflow the filedescriptor limit. Even on medium-sized systems, the wasted kernel overhead can be significant because it is O(n*n).
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. strace /sbin/udevstart and watch the fd climb for open().
2. Inspect source to modalias_is_greylisted().
Actual Results: 1. fd increases.
2. modalias_is_greylisted() calls open(), does not call close(), and does not remember the fd for a successful open() [so no other routine can call close() reasonably.]
Expected Results: 1. fd returned by open() should not rise above 3 or 4.
2. modalias_is_greylisted() should call close().