[PATCH] Display status of encryption and signing in smbstatus

Ralph Boehme rb at sernet.de
Thu Jan 21 18:10:52 UTC 2016


On Thu, Jan 21, 2016 at 05:38:55PM +0100, Ralph Boehme wrote:
> On Thu, Jan 21, 2016 at 08:33:13AM -0800, Jeremy Allison wrote:
> > On Thu, Jan 21, 2016 at 05:14:32PM +0100, Ralph Boehme wrote:
> > > ...and crashed in autobuild. Working on it...
> > 
> > Related ? Looking at req->encrypted is certainly
> > the correct thing here as ENCRYPTION_REQUIRED(conn)
> > is a static config, and req->encrypted is per-packet.
> 
> no, no. It crashed at logoff when session->global is alredy gone away
> when I call smb1srv_update_crypto_flags(). Iirc there was a reason I
> put the flag updating behind the packet processing. No idea why this
> didn't crash on me in manual testing.
> 
> Running a local make test now with an upated version, seems make test
> finally got usable on my devel machine.

hooray! make test passed the first time ever on my machine.

The following change is needed for the last patch in the set to fix
the crash:

--- a/source3/smbd/process.c
+++ b/source3/smbd/process.c
@@ -1695,9 +1695,6 @@ static connection_struct *switch_message(uint8_t type, struct smb_request *req)
                }
        }
 
-       smb_messages[type].fn(req);
-       conn = req->conn;
-
        /*
         * Update encryption and signing state tracking flags that are
         * used by smbstatus to display signing and encryption status.
@@ -1719,7 +1716,7 @@ static connection_struct *switch_message(uint8_t type, struct smb_request *req)
                }
 
                if (update_tcon_global) {
-                       status = smbXsrv_tcon_update(conn->tcon);
+                       status = smbXsrv_tcon_update(req->conn->tcon);
                        if (!NT_STATUS_IS_OK(status)) {
                                reply_nterror(req, NT_STATUS_UNSUCCESSFUL);
                                return conn;
@@ -1727,7 +1724,9 @@ static connection_struct *switch_message(uint8_t type, struct smb_request *req)
                }
        }
 
-       return conn;
+       smb_messages[type].fn(req);
+
+       return req->conn;
 }

Ie update the flags before calling the message handler.

Would you like me to re-post a complete patchset or can I just push
with this change squashed?

-Ralph

-- 
SerNet GmbH, Bahnhofsallee 1b, 37081 Göttingen
phone: +49-551-370000-0, fax: +49-551-370000-9
AG Göttingen, HRB 2816, GF: Dr. Johannes Loxen
http://www.sernet.de,mailto:kontakt@sernet.de



More information about the samba-technical mailing list