]> git.saurik.com Git - apt.git/blobdiff - apt-pkg/deb/dpkgpm.cc
close leaking slave fd after setting up pty magic
[apt.git] / apt-pkg / deb / dpkgpm.cc
index 3f6039e0db849e5f1a3c35b7876baadeefcc59e6..dd03eac2c458cecf2b4e009a84018824e1d80a58 100644 (file)
@@ -1158,8 +1158,7 @@ void pkgDPkgPM::SetupSlavePtyMagic()
    int const slaveFd = open(d->slave, O_RDWR);
    if (slaveFd == -1)
       _error->FatalE("open", _("Can not write log (%s)"), _("Is /dev/pts mounted?"));
-
-   if (ioctl(slaveFd, TIOCSCTTY, 0) < 0)
+   else if (ioctl(slaveFd, TIOCSCTTY, 0) < 0)
       _error->FatalE("ioctl", "Setting TIOCSCTTY for slave fd %d failed!", slaveFd);
    else
    {
@@ -1170,6 +1169,9 @@ void pkgDPkgPM::SetupSlavePtyMagic()
       if (tcsetattr(0, TCSANOW, &d->tt) < 0)
         _error->FatalE("tcsetattr", "Setting in Setup via TCSANOW for slave fd %d failed!", slaveFd);
    }
+
+   if (slaveFd != -1)
+      close(slaveFd);
 }
 void pkgDPkgPM::StopPtyMagic()
 {