]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
smbd: Simplify new_break_message_smb1
authorVolker Lendecke <vl@samba.org>
Mon, 19 Aug 2013 12:28:24 +0000 (12:28 +0000)
committerMichael Adam <obnox@samba.org>
Tue, 20 Aug 2013 12:35:21 +0000 (14:35 +0200)
There's no point in allocating a fixed length array that we throw away
immediately after use.

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Michael Adam <obnox@samba.org>
Autobuild-User(master): Michael Adam <obnox@samba.org>
Autobuild-Date(master): Tue Aug 20 14:35:21 CEST 2013 on sn-devel-104

source3/smbd/oplock.c

index fbdd6c87967266a3e8dd6d051639cb8a4fd89d49..21792bdee40675a3c8f407568069f0f8a1b96b0f 100644 (file)
@@ -223,16 +223,11 @@ bool should_notify_deferred_opens(struct smbd_server_connection *sconn)
  Set up an oplock break message.
 ****************************************************************************/
 
-static char *new_break_message_smb1(TALLOC_CTX *mem_ctx,
-                                  files_struct *fsp, int cmd)
-{
-       char *result = talloc_array(mem_ctx, char, smb_size + 8*2 + 0);
-
-       if (result == NULL) {
-               DEBUG(0, ("talloc failed\n"));
-               return NULL;
-       }
+#define SMB1_BREAK_MESSAGE_LENGTH (smb_size + 8*2)
 
+static void new_break_message_smb1(files_struct *fsp, int cmd,
+                                  char result[SMB1_BREAK_MESSAGE_LENGTH])
+{
        memset(result,'\0',smb_size);
        srv_set_message(result,8,0,true);
        SCVAL(result,smb_com,SMBlockingX);
@@ -244,7 +239,6 @@ static char *new_break_message_smb1(TALLOC_CTX *mem_ctx,
        SSVAL(result,smb_vwv2,fsp->fnum);
        SCVAL(result,smb_vwv3,LOCKING_ANDX_OPLOCK_RELEASE);
        SCVAL(result,smb_vwv3+1,cmd);
-       return result;
 }
 
 /****************************************************************************
@@ -369,12 +363,9 @@ static void add_oplock_timeout_handler(files_struct *fsp)
 
 static void send_break_message_smb1(files_struct *fsp, int level)
 {
-       char *break_msg = new_break_message_smb1(talloc_tos(),
-                                       fsp,
-                                       level);
-       if (break_msg == NULL) {
-               exit_server("Could not talloc break_msg\n");
-       }
+       char break_msg[SMB1_BREAK_MESSAGE_LENGTH];
+
+       new_break_message_smb1(fsp, level, break_msg);
 
        show_msg(break_msg);
        if (!srv_send_smb(fsp->conn->sconn,
@@ -384,8 +375,6 @@ static void send_break_message_smb1(files_struct *fsp, int level)
                exit_server_cleanly("send_break_message_smb1: "
                        "srv_send_smb failed.");
        }
-
-       TALLOC_FREE(break_msg);
 }
 
 static void break_level2_to_none_async(files_struct *fsp)