summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorErik Troan <ewt@redhat.com>2000-08-09 14:13:34 +0000
committerErik Troan <ewt@redhat.com>2000-08-09 14:13:34 +0000
commitd5f74b3f6b4400888b46db94bdb09c21378743c5 (patch)
treeaef0340ebf839b1a56e084855bcccf6f374aedf7
parent8224106a480edbdd2bce69c2d79e4acc5ebb0da2 (diff)
downloadanaconda-d5f74b3f6b4400888b46db94bdb09c21378743c5.tar.gz
anaconda-d5f74b3f6b4400888b46db94bdb09c21378743c5.tar.xz
anaconda-d5f74b3f6b4400888b46db94bdb09c21378743c5.zip
handle no FNM_PATHNAME
-rw-r--r--loader/fnmatch-stub.c10
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 ();
}