- remove s-bits on upgrade too (#598775)
This commit is contained in:
parent
6462ae4d5c
commit
8c454e468a
43
rpm-4.8.0-fsm-sbits.patch
Normal file
43
rpm-4.8.0-fsm-sbits.patch
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
diff -up rpm-4.8.0/lib/fsm.c.fsm-sbits rpm-4.8.0/lib/fsm.c
|
||||||
|
--- rpm-4.8.0/lib/fsm.c.fsm-sbits 2009-12-07 16:36:49.000000000 +0200
|
||||||
|
+++ rpm-4.8.0/lib/fsm.c 2010-06-02 09:25:52.000000000 +0300
|
||||||
|
@@ -1320,6 +1320,16 @@ static const char * rpmteTypeString(rpmt
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
+static void removeSBITS(const char *path)
|
||||||
|
+{
|
||||||
|
+ struct stat stb;
|
||||||
|
+ if (lstat(path, &stb) == 0) {
|
||||||
|
+ if (S_ISREG(stb.st_mode) && (stb.st_mode & 06000) != 0) {
|
||||||
|
+ (void) chmod(path, stb.st_mode & 0777);
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
#define IS_DEV_LOG(_x) \
|
||||||
|
((_x) != NULL && strlen(_x) >= (sizeof("/dev/log")-1) && \
|
||||||
|
rstreqn((_x), "/dev/log", sizeof("/dev/log")-1) && \
|
||||||
|
@@ -2024,11 +2034,8 @@ if (!(fsm->mapFlags & CPIO_ALL_HARDLINKS
|
||||||
|
break;
|
||||||
|
|
||||||
|
case FSM_UNLINK:
|
||||||
|
- if (fsm->mapFlags & CPIO_SBIT_CHECK) {
|
||||||
|
- struct stat stb;
|
||||||
|
- if (lstat(fsm->path, &stb) == 0 && S_ISREG(stb.st_mode) && (stb.st_mode & 06000) != 0)
|
||||||
|
- chmod(fsm->path, stb.st_mode & 0777);
|
||||||
|
- }
|
||||||
|
+ if (fsm->mapFlags & CPIO_SBIT_CHECK)
|
||||||
|
+ removeSBITS(fsm->path);
|
||||||
|
rc = unlink(fsm->path);
|
||||||
|
if (_fsm_debug && (stage & FSM_SYSCALL))
|
||||||
|
rpmlog(RPMLOG_DEBUG, " %8s (%s) %s\n", cur,
|
||||||
|
@@ -2037,6 +2044,8 @@ if (!(fsm->mapFlags & CPIO_ALL_HARDLINKS
|
||||||
|
rc = (errno == ENOENT ? CPIOERR_ENOENT : CPIOERR_UNLINK_FAILED);
|
||||||
|
break;
|
||||||
|
case FSM_RENAME:
|
||||||
|
+ if (fsm->mapFlags & CPIO_SBIT_CHECK)
|
||||||
|
+ removeSBITS(fsm->path);
|
||||||
|
rc = rename(fsm->opath, fsm->path);
|
||||||
|
#if defined(ETXTBSY) && defined(__HPUX__)
|
||||||
|
if (rc && errno == ETXTBSY) {
|
7
rpm.spec
7
rpm.spec
@ -21,7 +21,7 @@
|
|||||||
Summary: The RPM package management system
|
Summary: The RPM package management system
|
||||||
Name: rpm
|
Name: rpm
|
||||||
Version: %{rpmver}
|
Version: %{rpmver}
|
||||||
Release: 17%{?dist}
|
Release: 18%{?dist}
|
||||||
Group: System Environment/Base
|
Group: System Environment/Base
|
||||||
Url: http://www.rpm.org/
|
Url: http://www.rpm.org/
|
||||||
Source0: http://rpm.org/releases/testing/%{name}-%{srcver}.tar.bz2
|
Source0: http://rpm.org/releases/testing/%{name}-%{srcver}.tar.bz2
|
||||||
@ -53,6 +53,7 @@ Patch208: rpm-4.8.0-python-mibool.patch
|
|||||||
Patch209: rpm-4.8.0-python-emptyds.patch
|
Patch209: rpm-4.8.0-python-emptyds.patch
|
||||||
Patch210: rpm-4.8.0-findlang-localedirs.patch
|
Patch210: rpm-4.8.0-findlang-localedirs.patch
|
||||||
Patch211: rpm-4.8.0-spec-readline.patch
|
Patch211: rpm-4.8.0-spec-readline.patch
|
||||||
|
Patch212: rpm-4.8.0-fsm-sbits.patch
|
||||||
|
|
||||||
# These are not yet upstream
|
# These are not yet upstream
|
||||||
Patch301: rpm-4.6.0-niagara.patch
|
Patch301: rpm-4.6.0-niagara.patch
|
||||||
@ -212,6 +213,7 @@ packages on a system.
|
|||||||
%patch209 -p1 -b .python-emptyds
|
%patch209 -p1 -b .python-emptyds
|
||||||
%patch210 -p1 -b .findlang-localedirs
|
%patch210 -p1 -b .findlang-localedirs
|
||||||
%patch211 -p1 -b .spec-readline
|
%patch211 -p1 -b .spec-readline
|
||||||
|
%patch212 -p1 -b .fsm-sbits
|
||||||
|
|
||||||
%patch301 -p1 -b .niagara
|
%patch301 -p1 -b .niagara
|
||||||
%patch302 -p1 -b .geode
|
%patch302 -p1 -b .geode
|
||||||
@ -428,6 +430,9 @@ exit 0
|
|||||||
%doc doc/librpm/html/*
|
%doc doc/librpm/html/*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed Jun 02 2010 Panu Matilainen <pmatilai@redhat.com> - 4.8.0-18
|
||||||
|
- remove s-bits on upgrade too (#598775)
|
||||||
|
|
||||||
* Thu May 27 2010 Panu Matilainen <pmatilai@redhat.com> - 4.8.0-17
|
* Thu May 27 2010 Panu Matilainen <pmatilai@redhat.com> - 4.8.0-17
|
||||||
- fix segfault in spec parser (#597835)
|
- fix segfault in spec parser (#597835)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user