diff options
author | djm@openbsd.org <djm@openbsd.org> | 2020-11-03 23:53:12 +0100 |
---|---|---|
committer | Damien Miller <djm@mindrot.org> | 2020-11-04 00:09:25 +0100 |
commit | 05bcd0cadf160fd4826a2284afa7cba6ec432633 (patch) | |
tree | 4046fc6c000e1b674e8fc4b32b8b4bb527ba838f /match.c | |
parent | upstream: print reason in fatal error message when (diff) | |
download | openssh-05bcd0cadf160fd4826a2284afa7cba6ec432633.tar.xz openssh-05bcd0cadf160fd4826a2284afa7cba6ec432633.zip |
upstream: fold consecutive '*' wildcards to mitigate combinatorial
explosion of recursive searches; ok dtucker
OpenBSD-Commit-ID: d18bcb39c40fb8a1ab61153db987e7d11dd3792b
Diffstat (limited to 'match.c')
-rw-r--r-- | match.c | 8 |
1 files changed, 4 insertions, 4 deletions
@@ -1,4 +1,4 @@ -/* $OpenBSD: match.c,v 1.42 2020/07/05 23:59:45 djm Exp $ */ +/* $OpenBSD: match.c,v 1.43 2020/11/03 22:53:12 djm Exp $ */ /* * Author: Tatu Ylonen <ylo@cs.hut.fi> * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland @@ -53,7 +53,6 @@ * Returns true if the given string matches the pattern (which may contain ? * and * as wildcards), and zero if it does not match. */ - int match_pattern(const char *s, const char *pattern) { @@ -63,8 +62,9 @@ match_pattern(const char *s, const char *pattern) return !*s; if (*pattern == '*') { - /* Skip the asterisk. */ - pattern++; + /* Skip this and any consecutive asterisks. */ + while (*pattern == '*') + pattern++; /* If at end of pattern, accept immediately. */ if (!*pattern) |