r11743: - push the length at the correct offset
authorStefan Metzmacher <metze@samba.org>
Wed, 16 Nov 2005 15:47:44 +0000 (15:47 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 18:46:20 +0000 (13:46 -0500)
- let us push empty strings

metze
(This used to be commit 17c4b6298d757f2e53fe764608504bf737005cbe)

source4/libcli/smb2/request.c

index a9a7e6b71f6b8b34fb75988539f86f23c48108e4..bc278897a549db439fe8bf48395e274e977323ef 100644 (file)
@@ -254,7 +254,7 @@ NTSTATUS smb2_push_o16s16_blob(struct smb2_request_buffer *buf, uint8_t *ptr, DA
 
        if (blob.length == 0) {
                SSVAL(ptr, 0, 0);
-               SSVAL(ptr, 4, 0);
+               SSVAL(ptr, 2, 0);
                return NT_STATUS_OK;
        }
 
@@ -326,7 +326,7 @@ NTSTATUS smb2_push_o16s32_blob(struct smb2_request_buffer *buf, uint8_t *ptr, DA
 
        if (blob.length == 0) {
                SSVAL(ptr, 0, 0);
-               SIVAL(ptr, 4, 0);
+               SIVAL(ptr, 2, 0);
                return NT_STATUS_OK;
        }
 
@@ -457,6 +457,13 @@ NTSTATUS smb2_push_o16s16_string(struct smb2_request_buffer *buf,
        NTSTATUS status;
        ssize_t size;
 
+       if (strcmp("", str) == 0) {
+               blob = data_blob(NULL, 0);
+               status = smb2_push_o16s16_blob(buf, ptr, blob);
+               NT_STATUS_NOT_OK_RETURN(status);
+               return NT_STATUS_OK;
+       }
+
        size = convert_string_talloc(buf->buffer, CH_UNIX, CH_UTF16, 
                                     str, strlen(str), (void **)&blob.data);
        if (size == -1) {