r15119: Initialize our global sam sid first, quite a lot of the other initialization
authorVolker Lendecke <vlendec@samba.org>
Tue, 18 Apr 2006 09:02:58 +0000 (09:02 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 16:16:24 +0000 (11:16 -0500)
routines further down depend on it.

Fix bug 3696.

Volker
(This used to be commit 6c65cccc83aa7b726e23684f979f1488bed3f751)

source3/smbd/server.c

index d5a678b8508d7852d9bed4d07fe3924bf25d9685..a1466c408d2cc20bb2244fd3ea364ee51ca95c12 100644 (file)
@@ -912,6 +912,28 @@ void build_options(BOOL screen);
        if (!message_init())
                exit(1);
 
+       /* Initialize our global sam sid first -- quite a lot of the other
+        * initialization routines further down depend on it.
+        */
+
+       /* Initialise the password backed before the global_sam_sid
+          to ensure that we fetch from ldap before we make a domain sid up */
+
+       if(!initialize_password_db(False))
+               exit(1);
+
+       /* Fail gracefully if we can't open secrets.tdb */
+
+       if (!secrets_init()) {
+               DEBUG(0, ("ERROR: smbd can not open secrets.tdb\n"));
+               exit(1);
+       }
+
+       if(!get_global_sam_sid()) {
+               DEBUG(0,("ERROR: Samba cannot create a SAM SID.\n"));
+               exit(1);
+       }
+
        if (!session_init())
                exit(1);
 
@@ -965,17 +987,6 @@ void build_options(BOOL screen);
         * everything after this point is run after the fork()
         */ 
 
-       /* Initialise the password backed before the global_sam_sid
-          to ensure that we fetch from ldap before we make a domain sid up */
-
-       if(!initialize_password_db(False))
-               exit(1);
-
-       if(!get_global_sam_sid()) {
-               DEBUG(0,("ERROR: Samba cannot create a SAM SID.\n"));
-               exit(1);
-       }
-
        static_init_rpc;
 
        init_modules();