summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorespie <espie@openbsd.org>2015-07-12 14:52:17 +0000
committerespie <espie@openbsd.org>2015-07-12 14:52:17 +0000
commit3417e276a858db47190ed6d97919cf30dfaccecb (patch)
treebcb8b5193db600e9d788346eb10dda7cf16d4a8f
parentDo not trust the hardware when it says that the number of remaining (diff)
downloadwireguard-openbsd-3417e276a858db47190ed6d97919cf30dfaccecb.tar.xz
wireguard-openbsd-3417e276a858db47190ed6d97919cf30dfaccecb.zip
improve the error message for incorrect PKG_CACHE.
(yes, this should error out always)
-rw-r--r--usr.sbin/pkg_add/OpenBSD/PackageRepository.pm13
1 files changed, 10 insertions, 3 deletions
diff --git a/usr.sbin/pkg_add/OpenBSD/PackageRepository.pm b/usr.sbin/pkg_add/OpenBSD/PackageRepository.pm
index 2850acad1d8..af2cc70f434 100644
--- a/usr.sbin/pkg_add/OpenBSD/PackageRepository.pm
+++ b/usr.sbin/pkg_add/OpenBSD/PackageRepository.pm
@@ -1,5 +1,5 @@
# ex:ts=8 sw=4:
-# $OpenBSD: PackageRepository.pm,v 1.113 2015/03/04 13:55:32 espie Exp $
+# $OpenBSD: PackageRepository.pm,v 1.114 2015/07/12 14:52:17 espie Exp $
#
# Copyright (c) 2003-2010 Marc Espie <espie@openbsd.org>
#
@@ -525,7 +525,14 @@ sub open_pipe
$self->{state}->fatal("#1 not writable",
$OpenBSD::Temp::tempbase);
}
- $object->{cache_dir} = $ENV{'PKG_CACHE'};
+ my $d = $ENV{'PKG_CACHE'};
+ if (defined $d) {
+ $object->{cache_dir} = $d;
+ if (! -d -w $d) {
+ $self->{state}->fatal("bad PKG_CACHE directory #1", $d);
+ }
+ $object->{cache_dir} = $d;
+ }
$object->{parent} = $$;
my $pid2 = open(my $rdfh, "-|");
@@ -534,7 +541,7 @@ sub open_pipe
$object->{pid2} = $pid2;
} else {
open STDERR, '>', $object->{errors};
- if (defined $object->{cache_dir}) {
+ if (defined $d) {
my $pid3 = open(my $in, "-|");
$self->did_it_fork($pid3);
if ($pid3) {