svn commit: samba r16566 - in branches/SAMBA_4_0/source/libcli/smb2: .

metze at samba.org metze at samba.org
Tue Jun 27 17:16:15 GMT 2006


Author: metze
Date: 2006-06-27 17:16:14 +0000 (Tue, 27 Jun 2006)
New Revision: 16566

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=16566

Log:
add pull function for a site32/offset32 blob

metze
Modified:
   branches/SAMBA_4_0/source/libcli/smb2/request.c


Changeset:
Modified: branches/SAMBA_4_0/source/libcli/smb2/request.c
===================================================================
--- branches/SAMBA_4_0/source/libcli/smb2/request.c	2006-06-27 15:59:33 UTC (rev 16565)
+++ branches/SAMBA_4_0/source/libcli/smb2/request.c	2006-06-27 17:16:14 UTC (rev 16566)
@@ -509,6 +509,30 @@
 }
 
 /*
+  pull a uint32_t length/ uint32_t ofs/blob triple from a data blob
+  the ptr points to the start of the offset/length pair
+*/
+NTSTATUS smb2_pull_s32o32_blob(struct smb2_request_buffer *buf, TALLOC_CTX *mem_ctx, uint8_t *ptr, DATA_BLOB *blob)
+{
+	uint32_t ofs, size;
+	if (smb2_oob(buf, ptr, 8)) {
+		return NT_STATUS_BUFFER_TOO_SMALL;
+	}
+	size = IVAL(ptr, 0);
+	ofs  = IVAL(ptr, 4);
+	if (ofs == 0 || size == 0) {
+		*blob = data_blob(NULL, 0);
+		return NT_STATUS_OK;
+	}
+	if (smb2_oob(buf, buf->hdr + ofs, size)) {
+		return NT_STATUS_BUFFER_TOO_SMALL;
+	}
+	*blob = data_blob_talloc(mem_ctx, buf->hdr + ofs, size);
+	NT_STATUS_HAVE_NO_MEMORY(blob->data);
+	return NT_STATUS_OK;
+}
+
+/*
   pull a string in a uint16_t ofs/ uint16_t length/blob format
   UTF-16 without termination
 */



More information about the samba-cvs mailing list