bugfindutils - Bugs: bug #19374, Insufficient quoting of PRUNEPATHS...


bug #19374: Insufficient quoting of PRUNEPATHS in updatedb

Submitted by:  Andreas Metzler <ametzler>
Submitted on:  Wed 21 Mar 2007 06:21:47 PM UTC  
Category:  updatedb Severity:  3 - Normal
Item Group:  None Status:  Postponed
Privacy:  Public Assigned to:  None
Originator Name:  István Váradi Open/Closed:  Open
Release:  4.2.28 Fixed Release:  None

Add a New Comment(Rich Markup)

You are not logged in

Please log in, so followups can be emailed to you.


Wed 14 Jul 2010 08:11:50 PM UTC, comment #4:

Patches don't work for me when using the command-line option --prunepath as the asterisks are expanded in the "for arg" access of the implicit $@. As a workaround, wrapping my pattern with \( and \) works, like updatedb --prunepaths='\(.*/.svn\)'

Patches do work when setting the PRUNEPATH environment variable.

Sun 11 Apr 2010 11:56:38 AM UTC, comment #3:

updatedb would probably be best rewritten. I'm going to mark the updatedb-related bus as "Postponed" in order to consider them all in a batch, when I get around to the rewrite.

(Leslie P. Polzer did start on a rewrite some time back as part of the Summer of Code but there are some updatedb-related issues his changes don't resolve yet, I think)

James Youngman <jay>
Project Administrator
Mon 09 Feb 2009 09:22:17 AM UTC, comment #2:

Here is a patch:

--- updatedb.org 2009-01-27 13:29:28.575086300 +0100
+++ updatedb 2009-02-09 10:19:41.132505500 +0100
@@ -163,7 +163,7 @@
# Trailing slashes result in regex items that are never matched, which
# is not what the user will expect. Therefore we now reject such
# constructs.
-for p in $PRUNEPATHS; do
+for p in "$PRUNEPATHS"; do
case "$p" in
/*/) echo "$0: $p: pruned paths should not contain trailing slashes" >&2
exit 1
@@ -172,7 +172,7 @@

# The same, in the form of a regex that find can use.
test -z "$PRUNEREGEX" &&
- PRUNEREGEX=`echo $PRUNEPATHS|sed -e 's,^,\\\(^,' -e 's, ,$\\\)\\\|\\\(^,g' -e 's,$,$\\\),'`
+ PRUNEREGEX=`echo "$PRUNEPATHS"|sed -e 's,^,\\\(^,' -e 's, ,$\\\)\\\|\\\(^,g' -e 's,$,$\\\),'`

# The database file to build.
: ${LOCATE_DB=/var/locatedb}

Tue 27 Jan 2009 12:21:56 PM UTC, comment #1:

I second this ticket. Trying to prune directories based on regular expressions doesn't work. For example:

updatedb --findoptions='-mount' --localpaths='/cygdrive/c' --prunepaths='.*/.svn'

The asterisk in '.*/.svn' is shell-expanded by the line where pruned paths are converted to regular expressions. If $PRUNEPATH in this line is placed in double quotes works.

Wed 21 Mar 2007 06:21:47 PM UTC, original submission:

This is http://bugs.debian.org/415567

István Váradi writes: -----------------------
The updatedb script uses the PRUNEPATHS environment variable without quoting it. This causes some problems when putting regular expressions into the value of this variable. For example, if I use an asterisk (*) in a path, it will be expanded by the shell before using it as a regular expression. Thus, .*/lost+found becomes ../lost+found (and possibly others, depending on how many files or directories, whose names start with a dot I have in the working directory).

Afaict the fix should be trivial:

- for p in $PRUNEPATHS; do
+ for p in "$PRUNEPATHS"; do
- PRUNEREGEX=`echo $PRUNEPATHS|sed -e 's,^,\\\(^,' -e 's, ,$\\\)\\\|\\\(^,g' -e 's,$,$\\\),'`
+ PRUNEREGEX=`echo "$PRUNEPATHS"|sed -e 's,^,\\\(^,' -e 's, ,$\\\)\\\|\\\(^,g' -e 's,$,$\\\),'`

thanks, cu andreas

Andreas Metzler <ametzler>


(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:

No files currently attached


Depends on the following items: None found

Items that depend on this one: None found


Carbon-Copy List
  • -email is unavailable- added by jay (Posted a comment)
  • -email is unavailable- added by ametzler

    Do you think this task is very important?
    If so, you can add your encouragement to it.
    This task has 0 encouragements so far.

    Only logged-in users can vote.




    Follow 3 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2010-04-11 jay StatusNone => Postponed
    2007-03-21 ametzler Carbon-CopyRemoved 20807 => -
    2007-03-21 ametzler Carbon-Copy- => Added -email is unavailable-

    Back to the top

    Powered by Savane 3.3