summaryrefslogtreecommitdiff
path: root/usr.sbin
diff options
context:
space:
mode:
authorMarc Espie <espie@cvs.openbsd.org>2014-02-09 11:14:00 +0000
committerMarc Espie <espie@cvs.openbsd.org>2014-02-09 11:14:00 +0000
commit307f671e8706fc3004c9e481d613672d61e5655f (patch)
tree782b8be3e1aa756d119b5bc8a2b682dfd915df70 /usr.sbin
parent85368cb559d2ef493c9cba6a38a76173f18a2aba (diff)
do a better job in wipe_info: close files and reap children.
also wipe every state variable... fixes reget update_info in fringe cases (this should fix nigel@'s problems...)
Diffstat (limited to 'usr.sbin')
-rw-r--r--usr.sbin/pkg_add/OpenBSD/PackageLocation.pm7
1 files changed, 4 insertions, 3 deletions
diff --git a/usr.sbin/pkg_add/OpenBSD/PackageLocation.pm b/usr.sbin/pkg_add/OpenBSD/PackageLocation.pm
index 2ecd6583ae5..efd0becca4d 100644
--- a/usr.sbin/pkg_add/OpenBSD/PackageLocation.pm
+++ b/usr.sbin/pkg_add/OpenBSD/PackageLocation.pm
@@ -1,5 +1,5 @@
# ex:ts=8 sw=4:
-# $OpenBSD: PackageLocation.pm,v 1.36 2014/02/02 23:09:56 espie Exp $
+# $OpenBSD: PackageLocation.pm,v 1.37 2014/02/09 11:13:59 espie Exp $
#
# Copyright (c) 2003-2007 Marc Espie <espie@openbsd.org>
#
@@ -207,9 +207,9 @@ sub wipe_info
{
my $self = shift;
$self->{repository}->wipe_info($self);
+ $self->{repository}->close_now($self);
delete $self->{contents};
$self->deref;
- delete $self->{_current_name};
delete $self->{update_info};
}
@@ -278,10 +278,11 @@ sub deref
{
my $self = shift;
delete $self->{fh};
- delete $self->{pid};
delete $self->{pid2};
delete $self->{_archive};
delete $self->{_current};
+ delete $self->{_current_name};
+ delete $self->{_unput};
}
# proxy for archive operations