svn commit: samba r13386 - in branches/SAMBA_3_0/source: include rpc_parse

jra at samba.org jra at samba.org
Wed Feb 8 04:46:44 GMT 2006


Author: jra
Date: 2006-02-08 04:46:43 +0000 (Wed, 08 Feb 2006)
New Revision: 13386

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

Log:
Fix parsing of SAMR_Q_CONNECT_ANON.
Jeremy.

Modified:
   branches/SAMBA_3_0/source/include/rpc_samr.h
   branches/SAMBA_3_0/source/rpc_parse/parse_samr.c


Changeset:
Modified: branches/SAMBA_3_0/source/include/rpc_samr.h
===================================================================
--- branches/SAMBA_3_0/source/include/rpc_samr.h	2006-02-08 04:46:40 UTC (rev 13385)
+++ branches/SAMBA_3_0/source/include/rpc_samr.h	2006-02-08 04:46:43 UTC (rev 13386)
@@ -1677,13 +1677,10 @@
 
 
 /* SAMR_Q_CONNECT_ANON - probably an open */
-typedef struct q_samr_connect_anon_info
-{
+typedef struct q_samr_connect_anon_info {
 	uint32 ptr;                  /* ptr? */
-	uint16 unknown_0;            /* 0x005c */
-	uint16 unknown_1;            /* 0x0001 */
+	uint16 unknown_0;	     /* Only pushed if ptr is non-zero. */
 	uint32 access_mask;
-
 } SAMR_Q_CONNECT_ANON;
 
 /* SAMR_R_CONNECT_ANON - probably an open */

Modified: branches/SAMBA_3_0/source/rpc_parse/parse_samr.c
===================================================================
--- branches/SAMBA_3_0/source/rpc_parse/parse_samr.c	2006-02-08 04:46:40 UTC (rev 13385)
+++ branches/SAMBA_3_0/source/rpc_parse/parse_samr.c	2006-02-08 04:46:43 UTC (rev 13386)
@@ -6965,8 +6965,7 @@
 
 	q_u->ptr = 1;
 	q_u->unknown_0 = 0x5c;	/* server name (?!!) */
-	q_u->unknown_1 = 0x01;
-	q_u->access_mask = 0x20;
+	q_u->access_mask = MAXIMUM_ALLOWED_ACCESS;
 }
 
 /*******************************************************************
@@ -6987,10 +6986,12 @@
 
 	if(!prs_uint32("ptr      ", ps, depth, &q_u->ptr))
 		return False;
-	if(!prs_uint16("unknown_0", ps, depth, &q_u->unknown_0))
+	if (q_u->ptr) {
+		if(!prs_uint16("unknown_0", ps, depth, &q_u->unknown_0))
+			return False;
+	}
+	if(!prs_align(ps))
 		return False;
-	if(!prs_uint16("unknown_1", ps, depth, &q_u->unknown_1))
-		return False;
 	if(!prs_uint32("access_mask", ps, depth, &q_u->access_mask))
 		return False;
 



More information about the samba-cvs mailing list