summaryrefslogtreecommitdiffstats
path: root/usr.sbin/sysinstall
diff options
context:
space:
mode:
authorkensmith <kensmith@FreeBSD.org>2007-12-29 04:56:07 +0000
committerkensmith <kensmith@FreeBSD.org>2007-12-29 04:56:07 +0000
commit7b1f74b3d24e99955f39ed3a5ab2f55035fcbc14 (patch)
tree20d53864f77ccb70612c29a07dc84e162975232d /usr.sbin/sysinstall
parent72d4e91a1bc291f8c774f5ec5a02b6437a67a12b (diff)
downloadFreeBSD-src-7b1f74b3d24e99955f39ed3a5ab2f55035fcbc14.zip
FreeBSD-src-7b1f74b3d24e99955f39ed3a5ab2f55035fcbc14.tar.gz
Plug a memory leak. Once any given package (e.g. perl) was installed
we would leak a saved screen for every other package we tried to install that listed perl as one of its dependencies. When installing things like gnome and kde that wound up being a LOT of leaked memory. Insta-MFC request coming so this can be tested as part of 6.3-RC2... Testing help from: kris
Diffstat (limited to 'usr.sbin/sysinstall')
-rw-r--r--usr.sbin/sysinstall/index.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/usr.sbin/sysinstall/index.c b/usr.sbin/sysinstall/index.c
index 7a9443a..a55b541 100644
--- a/usr.sbin/sysinstall/index.c
+++ b/usr.sbin/sysinstall/index.c
@@ -687,7 +687,7 @@ index_extract(Device *dev, PkgNodePtr top, PkgNodePtr who, Boolean depended)
int status = DITEM_SUCCESS;
PkgNodePtr tmp2;
IndexEntryPtr id = who->data;
- WINDOW *w = savescr();
+ WINDOW *w;
/*
* Short-circuit the package dependency checks. We're already
@@ -702,6 +702,7 @@ index_extract(Device *dev, PkgNodePtr top, PkgNodePtr who, Boolean depended)
if (id->installed == 1)
return DITEM_SUCCESS;
+ w = savescr();
if (id && id->deps && strlen(id->deps)) {
char t[2048 * 8], *cp, *cp2;
@@ -744,6 +745,7 @@ index_extract(Device *dev, PkgNodePtr top, PkgNodePtr who, Boolean depended)
dev->volume, id->volume);
DEVICE_INIT(mediaDevice);
} else {
+ restorescr(w);
return DITEM_FAILURE;
}
}
OpenPOWER on IntegriCloud