s3:smb2 fix smbd crash on premature end of smb2 conn (Bug 8286)
authorChristian Ambach <ambi@samba.org>
Mon, 4 Jul 2011 15:55:54 +0000 (17:55 +0200)
committerChristian Ambach <ambi@samba.org>
Mon, 4 Jul 2011 18:00:26 +0000 (20:00 +0200)
when smbd tries to clean up locks after a premature end of a smb2
connection, lock_db has already been freed and so it crashes

this patch changes the order in which items are freed so that
lock_db is still around when it is needed

Jeremy, Metze, please check

Autobuild-User: Christian Ambach <ambi@samba.org>
Autobuild-Date: Mon Jul  4 20:00:26 CEST 2011 on sn-devel-104

source3/smbd/server_exit.c

index c7a318d891f5d02f7601df0e9f2ca79a5a5c5f11..05a4ece8e3c119012008c0583d2b9449649a27b5 100644 (file)
@@ -152,9 +152,6 @@ static void exit_server_common(enum server_exit_reason how,
                rpc_lsarpc_shutdown();
        }
 
-       locking_end();
-       printing_end();
-
        /*
         * we need to force the order of freeing the following,
         * because smbd_msg_ctx is not a talloc child of smbd_server_conn.
@@ -165,6 +162,9 @@ static void exit_server_common(enum server_exit_reason how,
        server_event_context_free();
        TALLOC_FREE(smbd_memcache_ctx);
 
+       locking_end();
+       printing_end();
+
        if (how != SERVER_EXIT_NORMAL) {
                DEBUGSEP(0);
                DEBUG(0,("Abnormal server exit: %s\n",