- fix recursion of directories with trailing slash in file list (#722474)

This commit is contained in:
Panu Matilainen 2011-07-19 11:22:49 +03:00
parent d123f007fc
commit c81abc1f8e
2 changed files with 50 additions and 1 deletions

View File

@ -0,0 +1,43 @@
commit 27c56c58209ee7c890f34429e030bfdb39105084
Author: Panu Matilainen <pmatilai@redhat.com>
Date: Mon Jun 27 12:41:39 2011 +0300
Remove ugly isDir recurse prevention hack on build
- We know if we're already fts-walking by the way addFile() gets called,
dont corrupt fl->isDir for no good reason.
(cherry picked from commit aedbf1d63f94cee312b283503c8deb1ede1895a1)
diff --git a/build/files.c b/build/files.c
index b4b893a..edba92a 100644
--- a/build/files.c
+++ b/build/files.c
@@ -1394,8 +1394,8 @@ static rpmRC addFile(FileList fl, const char * diskPath,
}
}
- if ((! fl->isDir) && S_ISDIR(statp->st_mode)) {
-/* FIX: fl->buildRoot may be NULL */
+ /* Don't recurse into explicit %dir, don't double-recurse from fts */
+ if ((fl->isDir != 1) && (statp == &statbuf) && S_ISDIR(statp->st_mode)) {
return recurseDir(fl, diskPath);
}
@@ -1529,8 +1529,6 @@ static rpmRC recurseDir(FileList fl, const char * diskPath)
int myFtsOpts = (FTS_COMFOLLOW | FTS_NOCHDIR | FTS_PHYSICAL);
rpmRC rc = RPMRC_FAIL;
- fl->isDir = 1; /* Keep it from following myftw() again */
-
ftsSet[0] = (char *) diskPath;
ftsSet[1] = NULL;
ftsp = Fts_open(ftsSet, myFtsOpts, NULL);
@@ -1563,8 +1561,6 @@ static rpmRC recurseDir(FileList fl, const char * diskPath)
}
(void) Fts_close(ftsp);
- fl->isDir = 0;
-
return rc;
}

View File

@ -21,7 +21,7 @@
Summary: The RPM package management system
Name: rpm
Version: %{rpmver}
Release: %{?snapver:0.%{snapver}.}1%{?dist}
Release: %{?snapver:0.%{snapver}.}2%{?dist}
Group: System Environment/Base
Url: http://www.rpm.org/
Source0: http://rpm.org/releases/rpm-4.9.x/%{name}-%{srcver}.tar.bz2
@ -40,6 +40,7 @@ Patch3: rpm-4.8.0-no-man-dirs.patch
Patch4: rpm-4.8.1-use-gpg2.patch
# Patches already in upstream
Patch200: rpm-4.9.1-recurse-dir.patch
# These are not yet upstream
Patch301: rpm-4.6.0-niagara.patch
@ -207,6 +208,8 @@ packages on a system.
%patch3 -p1 -b .no-man-dirs
%patch4 -p1 -b .use-gpg2
%patch200 -p1 -b .recurse-dir
%patch301 -p1 -b .niagara
%patch302 -p1 -b .geode
%patch303 -p1 -b .debuginfo-allnames
@ -423,6 +426,9 @@ exit 0
%doc COPYING doc/librpm/html/*
%changelog
* Tue Jul 19 2011 Panu Matilainen <pmatilai@redhat.com> - 4.9.1-2
- fix recursion of directories with trailing slash in file list (#722474)
* Fri Jul 15 2011 Panu Matilainen <pmatilai@redhat.com> - 4.9.1-1
- update to 4.9.1 (http://rpm.org/wiki/Releases/4.9.1)
- drop no longer needed patches