X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=rpm-scripts-closefds.patch;h=98a95cc9f054dfcb6f732eb022068153e867f24b;hb=3e7e347133823245e048beb84c73aaadf8287d67;hp=da005dad6709ec3b4ced38d31e5c4278d39d157d;hpb=3dbbfd100a81d4f3c6034902b9ae2ba45b68de4b;p=packages%2Frpm.git diff --git a/rpm-scripts-closefds.patch b/rpm-scripts-closefds.patch index da005da..98a95cc 100644 --- a/rpm-scripts-closefds.patch +++ b/rpm-scripts-closefds.patch @@ -1,30 +1,19 @@ -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 @@ + xx = Fclose(fd); + fd = NULL; } +- } else + } else { -+ if (Fileno(out) > STDERR_FILENO) -+ Fclose (out); - } - - { const char *ipath = rpmExpand("PATH=%{_install_script_path}", NULL); ++ long oldfl; + fd = fdLink(fd, "persist (showProgress)"); ++ 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); ++ } ++ } + /*@=type@*/ + return fd; + /*@notreached@*/ break;