Bug 77849 - Missing quotes in /usr/lib/rpm/find-requires
Summary: Missing quotes in /usr/lib/rpm/find-requires
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Red Hat Raw Hide
Classification: Retired
Component: rpm
Version: 1.0
Hardware: i386
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Jeff Johnson
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2002-11-14 12:35 UTC by Enrico Scholz
Modified: 2008-05-01 15:38 UTC (History)
0 users

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2002-11-14 12:36:05 UTC
Embargoed:


Attachments (Terms of Use)

Description Enrico Scholz 2002-11-14 12:35:58 UTC
Description of Problem:


While rebuilding guile-1.4.1 I get

| /usr/lib/rpm/find-requires: line 86: [: too many arguments

This is caused by /usr/share/guile/1.4.1/ice-9/and-let*.scm
which expands to both and-let*.scm and and-let-star.scm in the 

|   [ -r $f -a "${f%.pm}" != "${f}" ] && perllist="$perllist $f"
         ~~

check.
I suggest either to quote this "$f" (the check above is not the only place where
it must be done) or to handle stars/questionmarks/braces/... like " and ' and
escape them:

 ----- autodeps/linux.req
|  #
|  # --- Grab the file manifest and classify files.
|- filelist=`sed "s/['\"]/\\\&/g"`
|+ filelist=`sed "s/[]['\"*?{}]/\\\\\&/g"`
|  exelist=`echo $filelist | xargs -r file | egrep -v ":.* (commands|script) "|\
|           grep ":.*executable" | cut -d: -f1`

(note the addition '\\' in the replacement-string also; the former version was
wrong because the checked characters were replaced by '&').

Some other autodeps/* scripts are affected also.


Version-Release number of selected component (if applicable):

rpm-4.2-0.5


Steps to Reproduce:
1. rebuild guile-1.4.1-1.src.rpm and watch the output

Comment 1 Jeff Johnson 2002-11-15 18:19:41 UTC
FIxed in rpm-4.2-0.9 when built. Thanks for the patch.


Note You need to log in before you can comment on or make changes to this bug.