"Fix" memory exhaustion with many duplicate basenames on erase and a few
backports
This commit is contained in:
parent
8a6c7af43b
commit
57dc36fca1
12
rpm-4.4.2-netsharedpath.patch
Normal file
12
rpm-4.4.2-netsharedpath.patch
Normal file
@ -0,0 +1,12 @@
|
||||
--- rpm-4.4.2/lib/transaction.c.netsharedpath 2006-02-13 18:15:37.000000000 -0500
|
||||
+++ rpm-4.4.2/lib/transaction.c 2006-02-13 18:15:38.000000000 -0500
|
||||
@@ -820,6 +820,9 @@
|
||||
/*@innercontinue@*/ continue;
|
||||
if (strncmp(dn, *nsp, dnlen))
|
||||
/*@innercontinue@*/ continue;
|
||||
+ /* Insure that only the netsharedpath basename is compared. */
|
||||
+ if ((s = strchr((*nsp) + dnlen, '/')) != NULL && s[1] != '\0')
|
||||
+ /*@innercontinue@*/ continue;
|
||||
if (strncmp(bn, (*nsp) + dnlen, bnlen))
|
||||
/*@innercontinue@*/ continue;
|
||||
len = dnlen + bnlen;
|
20
rpm-4.4.2-userlock.patch
Normal file
20
rpm-4.4.2-userlock.patch
Normal file
@ -0,0 +1,20 @@
|
||||
--- rpm-4.4.2/lib/rpmlock.c.userlock 2006-02-23 15:24:46.000000000 -0500
|
||||
+++ rpm-4.4.2/lib/rpmlock.c 2006-02-23 15:25:53.000000000 -0500
|
||||
@@ -37,7 +37,7 @@
|
||||
|
||||
/* XXX oneshot to determine path for fcntl lock. */
|
||||
if (rpmlock_path == NULL) {
|
||||
- char * t = rpmExpand(rpmlock_path_default, NULL);
|
||||
+ char * t = rpmGenPath(rootdir, rpmlock_path_default, NULL);
|
||||
if (t == NULL || *t == '\0' || *t == '%')
|
||||
t = RPMLOCK_PATH;
|
||||
rpmlock_path = xstrdup(t);
|
||||
@@ -129,7 +129,7 @@
|
||||
const char *rootDir = rpmtsRootDir(ts);
|
||||
rpmlock lock;
|
||||
|
||||
- if (!rootDir)
|
||||
+ if (!rootDir || rpmtsChrootDone(ts))
|
||||
rootDir = "/";
|
||||
lock = rpmlock_new(rootDir);
|
||||
/*@-branchstate@*/
|
27
rpm-4.4.2-vercmp.patch
Normal file
27
rpm-4.4.2-vercmp.patch
Normal file
@ -0,0 +1,27 @@
|
||||
--- rpm-4.4.2/lib/rpmvercmp.c.vercmp 2005-07-03 22:32:22.000000000 -0400
|
||||
+++ rpm-4.4.2/lib/rpmvercmp.c 2006-02-13 18:20:01.000000000 -0500
|
||||
@@ -39,6 +39,9 @@
|
||||
while (*one && !xisalnum(*one)) one++;
|
||||
while (*two && !xisalnum(*two)) two++;
|
||||
|
||||
+ /* If we ran to the end of either, we are finished with the loop */
|
||||
+ if (!(*one && *two)) break;
|
||||
+
|
||||
str1 = one;
|
||||
str2 = two;
|
||||
|
||||
@@ -64,9 +67,13 @@
|
||||
*str2 = '\0';
|
||||
/*@=boundswrite@*/
|
||||
|
||||
+ /* this cannot happen, as we previously tested to make sure that */
|
||||
+ /* the first string has a non-null segment */
|
||||
+ if (one == str1) return -1; /* arbitrary */
|
||||
+
|
||||
/* take care of the case where the two version segments are */
|
||||
/* different types: one numeric, the other alpha (i.e. empty) */
|
||||
- if (one == str1) return -1; /* arbitrary */
|
||||
+ /* numeric segments are always newer than alpha segments */
|
||||
/* XXX See patch #60884 (and details) from bugzilla #50977. */
|
||||
if (two == str2) return (isnum ? 1 : -1);
|
||||
|
16
rpm.spec
16
rpm.spec
@ -20,7 +20,7 @@ Name: rpm
|
||||
%define version 4.4.2
|
||||
Version: %{version}
|
||||
%{expand: %%define rpm_version %{version}}
|
||||
Release: 15.2
|
||||
Release: 16
|
||||
Group: System Environment/Base
|
||||
Source: ftp://wraptastic.org/pub/rpm-4.4.x/rpm-%{rpm_version}.tar.gz
|
||||
Source1: mono-find-provides
|
||||
@ -45,6 +45,9 @@ Patch16: rpm-4.4.2-file-softmagic.patch
|
||||
Patch17: rpm-4.4.2-no-large-mmap.patch
|
||||
Patch18: rpm-4.4.2-perlmainprov.patch
|
||||
Patch19: rpm-4.4.2-rpmsq-deadlock.patch
|
||||
Patch20: rpm-4.4.2-netsharedpath.patch
|
||||
Patch21: rpm-4.4.2-userlock.patch
|
||||
Patch22: rpm-4.4.2-vercmp.patch
|
||||
License: GPL
|
||||
Conflicts: patch < 2.5
|
||||
%ifos linux
|
||||
@ -168,7 +171,7 @@ shell-like rules.
|
||||
%patch9 -p1 -b .contextverify
|
||||
%patch10 -p1 -b .charset
|
||||
%patch11 -p1 -b .ghostconflicts
|
||||
%patch12 -p1 -b .exclude
|
||||
#patch12 -p1 -b .exclude
|
||||
%patch13 -p1 -b .excludedsize
|
||||
%patch14 -p1 -b .cronpath
|
||||
%patch15 -p1 -b .mono
|
||||
@ -176,6 +179,9 @@ shell-like rules.
|
||||
%patch17 -p1 -b .no_large_mmap
|
||||
%patch18 -p1 -b .perlmainprov
|
||||
%patch19 -p1 -b .deadlock
|
||||
%patch20 -p1 -b .netsharedpath
|
||||
%patch21 -p1 -b .userlock
|
||||
%patch22 -p1 -b .vercmp
|
||||
|
||||
%build
|
||||
|
||||
@ -568,6 +574,12 @@ exit 0
|
||||
%{__includedir}/popt.h
|
||||
|
||||
%changelog
|
||||
* Fri Mar 31 2006 Paul Nasrat <pnasrat@redhat.com> - 4.4.2-16
|
||||
- Skipdirs on erase again (#187308)
|
||||
- Make fcntl lock sensitive to --root (#151255)
|
||||
- Fix netshared path comparison (#52725)
|
||||
- Fix rpm vercmp (#178798)
|
||||
|
||||
* Fri Feb 10 2006 Jesse Keating <jkeating@redhat.com> - 4.4.2-15.2
|
||||
- bump again for double-long bug on ppc(64)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user