From f45c731cd7740cfd479d8704de16ee49e51fe06e Mon Sep 17 00:00:00 2001
From: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu, 28 Feb 2013 14:51:08 +0100
Subject: [PATCH] Handle symlinks properly

Now it's really brown paper bag time...
---
 src/libstore/local-store.cc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/libstore/local-store.cc b/src/libstore/local-store.cc
index 2c439a66d..6154a6382 100644
--- a/src/libstore/local-store.cc
+++ b/src/libstore/local-store.cc
@@ -536,7 +536,7 @@ static void canonicalisePathMetaData_(const Path & path, uid_t fromUid, InodesSe
         if (inodesSeen.find(Inode(st.st_dev, st.st_ino)) == inodesSeen.end())
             throw BuildError(format("invalid ownership on file `%1%'") % path);
         mode_t mode = st.st_mode & ~S_IFMT;
-        assert(st.st_uid == geteuid() && (mode == 0444 || mode == 0555) && st.st_mtime == mtimeStore);
+        assert(st.st_uid == geteuid() && (S_ISLNK(st.st_mode) ? 1 : mode == 0444 || mode == 0555) && st.st_mtime == mtimeStore);
         return;
     }
 
-- 
GitLab