about summary refs log tree commit homepage
path: root/script/public-inbox-init
diff options
context:
space:
mode:
Diffstat (limited to 'script/public-inbox-init')
-rwxr-xr-xscript/public-inbox-init10
1 files changed, 8 insertions, 2 deletions
diff --git a/script/public-inbox-init b/script/public-inbox-init
index ae4a575c..c775eb31 100755
--- a/script/public-inbox-init
+++ b/script/public-inbox-init
@@ -138,8 +138,9 @@ close($fh) or die "failed to close $pi_config_tmp: $!\n";
 my $pfx = "publicinbox.$name";
 my @x = (qw/git config/, "--file=$pi_config_tmp");
 
-require Cwd;
-$inboxdir = Cwd::abs_path($inboxdir);
+require File::Spec;
+$inboxdir = File::Spec->canonpath($inboxdir);
+
 die "`\\n' not allowed in `$inboxdir'\n" if $inboxdir =~ /\n/s;
 if (-f "$inboxdir/inbox.lock") {
         if (!defined $version) {
@@ -185,6 +186,11 @@ if ($skip_docdata) {
         $ibx->{-skip_docdata} = $skip_docdata;
 }
 $ibx->init_inbox(0, $skip_epoch, $skip_artnum);
+require Cwd;
+my $tmp = Cwd::abs_path($inboxdir);
+defined($tmp) or die "failed to resolve $inboxdir: $!\n";
+$inboxdir = $tmp;
+die "`\\n' not allowed in `$inboxdir'\n" if $inboxdir =~ /\n/s;
 
 # needed for git prior to v2.1.0
 umask(0077) if defined $perm;