grep: -r didn't close files, producing "Too many open files"

This commit is contained in:
Denis Vlasenko 2006-10-15 18:38:01 +00:00
parent c6ec8c9680
commit bf39216cc4

View File

@ -301,6 +301,7 @@ static int file_action_grep(const char *filename, struct stat *statbuf, void* ma
} }
cur_file = filename; cur_file = filename;
*(int*)matched += grep_file(file); *(int*)matched += grep_file(file);
fclose(file);
return 1; return 1;
} }
@ -446,13 +447,13 @@ int grep_main(int argc, char **argv)
} }
} }
matched += grep_file(file); matched += grep_file(file);
bb_fclose_nonstdin(file);
grep_done: grep_done:
if (matched < 0) { if (matched < 0) {
/* we found a match but were told to be quiet, stop here and /* we found a match but were told to be quiet, stop here and
* return success */ * return success */
break; break;
} }
bb_fclose_nonstdin(file);
} }
/* destroy all the elments in the pattern list */ /* destroy all the elments in the pattern list */