summaryrefslogtreecommitdiffstats
path: root/usr.bin/grep
diff options
context:
space:
mode:
Diffstat (limited to 'usr.bin/grep')
-rw-r--r--usr.bin/grep/util.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/usr.bin/grep/util.c b/usr.bin/grep/util.c
index 37b48c4..285f883 100644
--- a/usr.bin/grep/util.c
+++ b/usr.bin/grep/util.c
@@ -61,21 +61,26 @@ static bool ctxover;
bool
file_matching(const char *fname)
{
- char *fname_base;
+ char *fname_base, *fname_buf;
bool ret;
ret = finclude ? false : true;
- fname_base = basename(fname);
+ fname_buf = strdup(fname);
+ if (fname_buf == NULL)
+ err(2, "strdup");
+ fname_base = basename(fname_buf);
for (unsigned int i = 0; i < fpatterns; ++i) {
if (fnmatch(fpattern[i].pat, fname, 0) == 0 ||
fnmatch(fpattern[i].pat, fname_base, 0) == 0) {
- if (fpattern[i].mode == EXCL_PAT)
- return (false);
- else
+ if (fpattern[i].mode == EXCL_PAT) {
+ ret = false;
+ break;
+ } else
ret = true;
}
}
+ free(fname_buf);
return (ret);
}
OpenPOWER on IntegriCloud