Hello community,

here is the log from the commit of package rpm for openSUSE:Factory checked in 
at 2012-09-27 10:29:17
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rpm (Old)
 and      /work/SRC/openSUSE:Factory/.rpm.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "rpm", Maintainer is "[email protected]"

Changes:
--------
rpm-python.changes: same change
--- /work/SRC/openSUSE:Factory/rpm/rpm.changes  2012-09-26 16:27:10.000000000 
+0200
+++ /work/SRC/openSUSE:Factory/.rpm.new/rpm.changes     2012-09-27 
10:29:18.000000000 +0200
@@ -1,0 +2,6 @@
+Wed Sep 26 14:13:48 UTC 2012 - [email protected]
+
+- fix rpm leaking file descriptors of packages:
+   patch fix-fd-leak.diff
+
+-------------------------------------------------------------------

New:
----
  fix-fd-leak.diff

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
rpm-python.spec: same change
++++++ rpm.spec ++++++
--- /var/tmp/diff_new_pack.QVeOdv/_old  2012-09-27 10:29:21.000000000 +0200
+++ /var/tmp/diff_new_pack.QVeOdv/_new  2012-09-27 10:29:21.000000000 +0200
@@ -134,6 +134,7 @@
 Patch79:        helperenv.diff
 Patch80:        obsoletesdeptag.diff
 Patch81:        fdopen_strncat.diff
+Patch82:        fix-fd-leak.diff
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 #
 # avoid bootstrapping problem
@@ -210,7 +211,7 @@
 %patch -P 50 -P 51 -P 52 -P 53 -P 54 -P 55 -P 56 -P 57 -P 58 -P 59
 %patch -P 60 -P 61 -P 62 -P 63 -P 64 -P 65 -P 66 -P 67 -P 68 -P 69
 %patch -P 70 -P 71 -P 72 -P 73 -P 74 -P 75 -P 76 -P 77 -P 78 -P 79
-%patch -P 80 -P 81
+%patch -P 80 -P 81 -P 82
 #chmod 755 scripts/find-supplements{,.ksyms}
 #chmod 755 scripts/find-provides.ksyms scripts/find-requires.ksyms
 #chmod 755 scripts/firmware.prov

++++++ fix-fd-leak.diff ++++++
Summary: Do not leak file descriptors
Author: Stephan Kulow <[email protected]>

There is nothing closing the file, the notify callback tries to,
but gets passed a 0 pointer, so this is the easiest solution.
Michael contacts upstream to find out what the real solution is

--- lib/rpmte.c
+++ lib/rpmte.c
@@ -717,6 +717,8 @@ static int rpmteClose(rpmte te, int rese
     case TR_ADDED:
        if (te->fd) {
            rpmtsNotify(te->ts, te, RPMCALLBACK_INST_CLOSE_FILE, 0, 0);
+           if (te->fd) /* not yet closed */
+               Fclose(te->fd);
            te->fd = NULL;
        }
        break;
-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to