-diff -Nur rpm-4.0.2.orig/lib/rpminstall.c rpm-4.0.2/lib/rpminstall.c
---- rpm-4.0.2.orig/lib/rpminstall.c Sat Feb 10 15:07:16 2001
-+++ rpm-4.0.2/lib/rpminstall.c Sun Sep 9 00:33:52 2001
-@@ -87,6 +87,13 @@
- case RPMCALLBACK_INST_OPEN_FILE:
- fd = Fopen(filename, "r.ufdio");
- fd = fdLink(fd, "persist (showProgress)");
-+ {
-+ int oldfl=Fcntl(fd, F_GETFD, 0);
-+ if(oldfl >= 0) {
-+ oldfl |= FD_CLOEXEC; /* scripts shouldn't inherit rpm file descriptor */
-+ Fcntl(fd, F_SETFD, oldfl);
-+ }
-+ }
- return fd;
-
- case RPMCALLBACK_INST_CLOSE_FILE:
-diff -Nur rpm-4.0.2.orig/lib/uninstall.c rpm-4.0.2/lib/uninstall.c
---- rpm-4.0.2.orig/lib/uninstall.c Mon Jan 22 16:59:13 2001
-+++ rpm-4.0.2/lib/uninstall.c Sat Sep 8 23:58:22 2001
-@@ -388,6 +388,9 @@
- if (Fileno(ts->scriptFd) > STDERR_FILENO) {
- Fclose (ts->scriptFd);
+--- rpm-4.1/lib/rpminstall.c.wiget Mon Sep 16 21:06:08 2002
++++ rpm-4.1/lib/rpminstall.c Thu Sep 19 00:03:36 2002
+@@ -126,8 +126,15 @@
+ Fclose(fd);
+ fd = NULL;
}
+- } else
+ } else {
-+ if (Fileno(out) > STDERR_FILENO)
-+ Fclose (out);
- }
++ long oldfl;
+ fd = fdLink(fd);
++ oldfl=Fcntl(fd, F_GETFD, 0);
++ if(oldfl >= 0) {
++ oldfl |= FD_CLOEXEC; /* scripts shouldn't inherit rpm file descriptor */
++ Fcntl(fd, F_SETFD, (void*)oldfl);
++ }
++ }
+ return (void *)fd;
+ break;
- { const char *ipath = rpmExpand("PATH=%{_install_script_path}", NULL);