public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Steven Rostedt <srostedt@redhat.com>
To: George Spelvin <linux@horizon.com>
Cc: peterz@infradead.org, andi@firstfloor.org, tj@kernel.org,
	linux-kernel@vger.kernel.org
Subject: Re: [RFC] globmatch() helper function
Date: Wed, 17 Dec 2008 11:13:12 -0500	[thread overview]
Message-ID: <1229530392.30177.10.camel@localhost.localdomain> (raw)
In-Reply-To: <20081217160417.18507.qmail@science.horizon.com>


On Wed, 2008-12-17 at 11:04 -0500, George Spelvin wrote:

> 
> The problem is, what if some future thoughtless person feeds user data
> into the pattern argument?
> 
> I could just take support for non-trailing * out entirely.  That would be
> a different sort of documentation burden.
> 
> Or I could just add an explicit 2-level stack. If you overflow the stack,
> matching always fails.  Unfortunately, the code will be larger.
> 
> Do people think that would be, on balance, better?  It would be plenty
> good enough for the blacklist application.

Having a static function do the work and pass in a "depth" parameter
should be sufficient. As Andi mentioned, a depth of 10 should be plenty.

Like this:

static bool
 globmatch_internal(const char *pat, const char *str, int depth)
{
	if (depth > 10)
		return false;

	[...]

	while (!globmatch_internal(pat+1, str, depth+1))
	[...]
}

bool globmatch(const char *pat, const char *str)
{
	return globmatch_internal(pat, str, 0);
}

Make sure you include a "Signed-off-by:" as well.

-- Steve



  reply	other threads:[~2008-12-17 16:22 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-12-17 10:42 [RFC] globmatch() helper function George Spelvin
2008-12-17 13:28 ` Andi Kleen
2008-12-17 15:15   ` Peter Zijlstra
2008-12-17 15:47     ` Steven Rostedt
2008-12-17 16:15       ` Andi Kleen
2008-12-18  8:00       ` George Spelvin
2008-12-18  8:55         ` George Spelvin
2008-12-18 19:53           ` Casey Dahlin
2008-12-18 21:53             ` George Spelvin
2008-12-17 16:04     ` George Spelvin
2008-12-17 16:13       ` Steven Rostedt [this message]
2008-12-17 16:22       ` Tejun Heo
2008-12-17 16:31         ` Steven Rostedt
2008-12-17 16:33           ` Tejun Heo
2008-12-17 16:36             ` Peter Zijlstra
2008-12-17 16:45               ` Tejun Heo
2008-12-17 16:37             ` Steven Rostedt
2008-12-17 16:51               ` Andi Kleen
2008-12-17 16:54                 ` Steven Rostedt
2008-12-17 15:37   ` George Spelvin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1229530392.30177.10.camel@localhost.localdomain \
    --to=srostedt@redhat.com \
    --cc=andi@firstfloor.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@horizon.com \
    --cc=peterz@infradead.org \
    --cc=tj@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox