From c95742283595cb01b44ddc8e6ff5e9c1d66db444 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Fri, 3 Oct 2014 16:53:28 +0200 Subject: [PATCH] =?UTF-8?q?createDirs():=20Handle=20=E2=80=98path=E2=80=99?= =?UTF-8?q?=20being=20a=20symlink?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In particular, this fixes "nix-build -o /tmp/result" on Mac OS X (where /tmp is a symlink). --- nix/libutil/util.cc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/nix/libutil/util.cc b/nix/libutil/util.cc index 54b9eb82d6..9af42a150c 100644 --- a/nix/libutil/util.cc +++ b/nix/libutil/util.cc @@ -379,6 +379,9 @@ Paths createDirs(const Path & path) created.push_back(path); } + if (S_ISLNK(st.st_mode) && stat(path.c_str(), &st) == -1) + throw SysError(format("statting symlink `%1%'") % path); + if (!S_ISDIR(st.st_mode)) throw Error(format("`%1%' is not a directory") % path); return created;