]> granicus.if.org Git - pdns/commitdiff
backport #6129: auth: Init openssl and libsodium before chrooting in pdnsutil
authorRemi Gacogne <remi.gacogne@powerdns.com>
Mon, 1 Jan 2018 22:43:51 +0000 (23:43 +0100)
committerPeter van Dijk <peter.van.dijk@powerdns.com>
Tue, 13 Feb 2018 11:15:13 +0000 (12:15 +0100)
(cherry picked from commit 7c3ee3dcfed2d0a9700d0cc8c064e031262e6279)

pdns/pdnsutil.cc

index 05d5dee904bf389a35f9445eb10e348afb8aa2c5..f409fd05918e3ea18061f2642a14ec9cb84777e3 100644 (file)
@@ -125,6 +125,15 @@ void loadMainConfig(const std::string& configdir)
 
   seedRandom(::arg()["entropy-source"]);
 
+#ifdef HAVE_LIBSODIUM
+  if (sodium_init() == -1) {
+    cerr<<"Unable to initialize sodium crypto library"<<endl;
+    exit(99);
+  }
+#endif
+
+  openssl_seed();
+
   if (!::arg()["chroot"].empty()) {
     if (chroot(::arg()["chroot"].c_str())<0 || chdir("/") < 0) {
       cerr<<"Unable to chroot to '"+::arg()["chroot"]+"': "<<strerror (errno)<<endl;
@@ -1956,15 +1965,6 @@ try
 
   loadMainConfig(g_vm["config-dir"].as<string>());
 
-#ifdef HAVE_LIBSODIUM
-  if (sodium_init() == -1) {
-    cerr<<"Unable to initialize sodium crypto library"<<endl;
-    exit(99);
-  }
-#endif
-
-  openssl_seed();
-
   if (cmds[0] == "test-algorithm") {
     if(cmds.size() != 2) {
       cerr << "Syntax: pdnsutil test-algorithm algonum"<<endl;