From 9983591d172ba5ded02b4e697e655429546e4966 Mon Sep 17 00:00:00 2001 From: Otavio Salvador Date: Mon, 26 Nov 2007 15:44:46 -0200 Subject: [PATCH] * Applied patch from Aurelien Jarno to avoid CPU getting crazy when /dev/null is redirected to stdin (which breaks buildds), closes: #452858. --- apt-pkg/deb/dpkgpm.cc | 10 ++++++++-- apt-pkg/deb/dpkgpm.h | 2 ++ debian/changelog | 5 ++++- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/apt-pkg/deb/dpkgpm.cc b/apt-pkg/deb/dpkgpm.cc index 5a7711a90..d796146fa 100644 --- a/apt-pkg/deb/dpkgpm.cc +++ b/apt-pkg/deb/dpkgpm.cc @@ -344,7 +344,10 @@ void pkgDPkgPM::DoStdin(int master) { char input_buf[256] = {0,}; int len = read(0, input_buf, sizeof(input_buf)); - write(master, input_buf, len); + if (len) + write(master, input_buf, len); + else + stdin_is_dev_null = true; } /*}}}*/ // DPkgPM::DoTerminalPty - Read the terminal pty and write log /*{{{*/ @@ -639,6 +642,8 @@ bool pkgDPkgPM::Go(int OutStatusFd) } } + stdin_is_dev_null = false; + // create log OpenLog(); @@ -868,7 +873,8 @@ bool pkgDPkgPM::Go(int OutStatusFd) // wait for input or output here FD_ZERO(&rfds); - FD_SET(0, &rfds); + if (!stdin_is_dev_null) + FD_SET(0, &rfds); FD_SET(_dpkgin, &rfds); if(master >= 0) FD_SET(master, &rfds); diff --git a/apt-pkg/deb/dpkgpm.h b/apt-pkg/deb/dpkgpm.h index b7f45b978..81a888f05 100644 --- a/apt-pkg/deb/dpkgpm.h +++ b/apt-pkg/deb/dpkgpm.h @@ -23,6 +23,8 @@ class pkgDPkgPM : public pkgPackageManager { private: + bool stdin_is_dev_null; + // the buffer we use for the dpkg status-fd reading char dpkgbuf[1024]; int dpkgbuf_pos; diff --git a/debian/changelog b/debian/changelog index ad860dbad..f5f9659ac 100644 --- a/debian/changelog +++ b/debian/changelog @@ -4,8 +4,11 @@ apt (0.7.10) UNRELEASED; urgency=low apt-mark, closes: #430207. * Applied patch from Andrei Popescu to add a note about some frontends in apt.8 manpage, closes: #438545. + * Applied patch from Aurelien Jarno to avoid CPU + getting crazy when /dev/null is redirected to stdin (which breaks + buildds), closes: #452858. - -- Otavio Salvador Mon, 19 Nov 2007 17:52:34 -0200 + -- Otavio Salvador Mon, 26 Nov 2007 15:42:43 -0200 apt (0.7.9) unstable; urgency=low -- 2.45.2