kqueue set_watched_dirs: fix termination condition

num_fds is the number of elements of dirs currently in use. This bug
meant that encountering a previously un-watched directory would cause j
to increment forever, and so dirs[j] would eventually segfault.

(I've checked the corresponding code for inotify, and it's correct. I
wonder if some of the duplication could be eliminated.)

Thanks to Pablo Martí Gamboa <pmarti@warp.es> for reporting this issue!
This commit is contained in:
Will Thompson 2010-05-20 16:08:33 +01:00
parent 0528323563
commit 82a77d6acb

View file

@ -169,7 +169,7 @@ bus_set_watched_dirs (BusContext *context, DBusList **directories)
*/
for (i = 0; new_dirs[i]; i++)
{
for (j = 0; i < num_fds; j++)
for (j = 0; j < num_fds; j++)
{
if (dirs[j] && strcmp (new_dirs[i], dirs[j]) == 0)
{