summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAllan McRae <allan@archlinux.org>2012-03-12 09:28:01 +0100
committerJim Meyering <meyering@redhat.com>2012-03-12 09:46:03 +0100
commit12c957f786b12a4dd116f9c40a715d671d17fa16 (patch)
treeff72b20016c52d5cfba76c7801cc6720a35c2c2d
parentd0bb7f9c1505f08362dbf107d47d8d6795c93fbf (diff)
downloadgrep-12c957f786b12a4dd116f9c40a715d671d17fa16.tar.gz
grep: fix segfault with -r --exclude-dir and no file operand
* src/main.c (grepdir): Don't invoke excluded_file_name on NULL. * NEWS (Bug fixes): Mention it.
-rw-r--r--NEWS5
-rw-r--r--src/main.c2
2 files changed, 6 insertions, 1 deletions
diff --git a/NEWS b/NEWS
index d0a63d57..d4d70f5b 100644
--- a/NEWS
+++ b/NEWS
@@ -2,6 +2,11 @@ GNU grep NEWS -*- outline -*-
* Noteworthy changes in release ?.? (????-??-??) [?]
+** Bug fixes
+
+ grep no longer segfaults with -r --exclude-dir and no file operand.
+ I.e., ":|grep -r --exclude-dir=D PAT" would segfault.
+
* Noteworthy changes in release 2.11 (2012-03-02) [stable]
diff --git a/src/main.c b/src/main.c
index 2f6c7617..f4f1235f 100644
--- a/src/main.c
+++ b/src/main.c
@@ -1361,7 +1361,7 @@ grepdir (char const *dir, struct stats const *stats)
struct stats const *ancestor;
char *name_space;
int status = 1;
- if (excluded_directory_patterns
+ if (dir && excluded_directory_patterns
&& excluded_file_name (excluded_directory_patterns, dir))
return 1;