Bug 77849

Summary: Missing quotes in /usr/lib/rpm/find-requires
Product: [Retired] Red Hat Raw Hide Reporter: Enrico Scholz <rh-bugzilla>
Component: rpmAssignee: Jeff Johnson <jbj>
Status: CLOSED RAWHIDE QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: 1.0   
Target Milestone: ---   
Target Release: ---   
Hardware: i386   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2002-11-14 12:36:05 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

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.