diff options
author | 2017-01-25 14:12:33 +0000 | |
---|---|---|
committer | 2017-01-25 14:12:33 +0000 | |
commit | ab0cb69261386059810e2e3ddef7baabb52cdef6 (patch) | |
tree | f0ea21c1509fbef38b9ad11527dc804a523cd744 | |
parent | In some cases, pkg_info -e spec would display the spec instead of the (diff) | |
download | wireguard-openbsd-ab0cb69261386059810e2e3ddef7baabb52cdef6.tar.xz wireguard-openbsd-ab0cb69261386059810e2e3ddef7baabb52cdef6.zip |
if the fs got badly damaged, display a decent error message instead of
erroring out when we can't read a plist.
-rw-r--r-- | usr.sbin/pkg_add/OpenBSD/PkgDelete.pm | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/usr.sbin/pkg_add/OpenBSD/PkgDelete.pm b/usr.sbin/pkg_add/OpenBSD/PkgDelete.pm index 0ff537eaae9..34ca6b5f9ff 100644 --- a/usr.sbin/pkg_add/OpenBSD/PkgDelete.pm +++ b/usr.sbin/pkg_add/OpenBSD/PkgDelete.pm @@ -1,6 +1,6 @@ #!/usr/bin/perl # ex:ts=8 sw=4: -# $OpenBSD: PkgDelete.pm,v 1.35 2015/10/07 17:52:38 jmc Exp $ +# $OpenBSD: PkgDelete.pm,v 1.36 2017/01/25 14:12:33 espie Exp $ # # Copyright (c) 2003-2010 Marc Espie <espie@openbsd.org> # @@ -356,6 +356,13 @@ sub process_set if ($state->{do_automatic}) { for my $pkg ($set->older) { $pkg->complete_old; + if (!defined $pkg->plist) { + $state->say("Corrupt set #1, run pkg_check", + $set->print); + $set->cleanup(OpenBSD::Handle::CANT_DELETE); + $state->tracker->cant($set); + return (); + } if ($pkg->plist->has('manual-installation')) { $state->say("Won't delete manually installed #1", $set->print) if $state->verbose; |