daemon: Require a signature for imports made by root.
authorLudovic Courtès <ludo@gnu.org>
Thu, 27 Aug 2015 08:58:31 +0000 (10:58 +0200)
committerLudovic Courtès <ludo@gnu.org>
Thu, 27 Aug 2015 08:58:31 +0000 (10:58 +0200)
This reinstates commit aa0f8409, which was inadvertently undone in commit
322eeb87.

Running 'guix archive --import' as root would have let corrupt or unauthentic
store items through.

Reported by Eric Hanchrow <eric.hanchrow@gmail.com>
at <http://bugs.gnu.org/21354>.

* nix/nix-daemon/nix-daemon.cc (performOp) <wopImportPaths>: Pass true as the
  first argument to 'importPaths'.

nix/nix-daemon/nix-daemon.cc

index 2b89190..10159db 100644 (file)
@@ -440,7 +440,10 @@ static void performOp(bool trusted, unsigned int clientVersion,
     case wopImportPaths: {
         startWork();
         TunnelSource source(from);
-        Paths paths = store->importPaths(!trusted, source);
+
+       /* Unlike Nix, always require a signature, even for "trusted"
+          users.  */
+        Paths paths = store->importPaths(true, source);
         stopWork();
         writeStrings(paths, to);
         break;