grep: -r didn't close files, producing "Too many open files"
diff --git a/findutils/grep.c b/findutils/grep.c
index 12cad34..04dd2b0 100644
--- a/findutils/grep.c
+++ b/findutils/grep.c
@@ -301,6 +301,7 @@
}
cur_file = filename;
*(int*)matched += grep_file(file);
+ fclose(file);
return 1;
}
@@ -446,13 +447,13 @@
}
}
matched += grep_file(file);
+ bb_fclose_nonstdin(file);
grep_done:
if (matched < 0) {
/* we found a match but were told to be quiet, stop here and
* return success */
break;
}
- bb_fclose_nonstdin(file);
}
/* destroy all the elments in the pattern list */