diff options
author | Erik Troan <ewt@redhat.com> | 2000-08-09 14:13:34 +0000 |
---|---|---|
committer | Erik Troan <ewt@redhat.com> | 2000-08-09 14:13:34 +0000 |
commit | d5f74b3f6b4400888b46db94bdb09c21378743c5 (patch) | |
tree | aef0340ebf839b1a56e084855bcccf6f374aedf7 | |
parent | 8224106a480edbdd2bce69c2d79e4acc5ebb0da2 (diff) | |
download | anaconda-d5f74b3f6b4400888b46db94bdb09c21378743c5.tar.gz anaconda-d5f74b3f6b4400888b46db94bdb09c21378743c5.tar.xz anaconda-d5f74b3f6b4400888b46db94bdb09c21378743c5.zip |
handle no FNM_PATHNAME
-rw-r--r-- | loader/fnmatch-stub.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/loader/fnmatch-stub.c b/loader/fnmatch-stub.c index 88de2221d..936201a3a 100644 --- a/loader/fnmatch-stub.c +++ b/loader/fnmatch-stub.c @@ -8,7 +8,7 @@ int fnmatch(const char *pattern, const char *string, int flags) { const char *p, *q, *r; - if (flags == (FNM_PATHNAME | FNM_PERIOD) + if (!(flags & ~(FNM_PATHNAME | FNM_PERIOD)) && strpbrk (pattern, "[?{") == NULL && (p = strchr (pattern, '*')) != NULL && strchr (p + 1, '*') == NULL) @@ -17,11 +17,13 @@ int fnmatch(const char *pattern, const char *string, int flags) return FNM_NOMATCH; q = strstr (string + (p - pattern), p + 1); r = strchr (string + (p - pattern), '/'); - if (q == NULL || strlen (q) != strlen (p + 1) - || (r != NULL && r < q)) + if (q == NULL || strlen (q) != strlen (p + 1)) + return FNM_NOMATCH; + + if ((flags & FNM_PATHNAME) && (r != NULL && r < q)) return FNM_NOMATCH; return 0; } fprintf (stderr, "fnmatch stub does not support '%s' patterns\n", pattern); - exit (1); + abort (); } |