pipentlsa.c :
authorLuke Leighton <lkcl@samba.org>
Tue, 14 Oct 1997 19:31:07 +0000 (19:31 +0000)
committerLuke Leighton <lkcl@samba.org>
Tue, 14 Oct 1997 19:31:07 +0000 (19:31 +0000)
lsa close odd bug.

smbparse.c :

smb_io_dom_sid() _does_ need 4-byte alignment before it.
(This used to be commit 93879ac8a533ad8cc175275cf1fc9a8f152f4b5a)

source3/pipentlsa.c
source3/smbparse.c

index 030e00e87abea1aa21a28c8d93ef95d191864012..d27b7b2b763ee8870648170243f5e80a8d206885 100644 (file)
@@ -40,8 +40,8 @@ static int lsa_reply_open_policy(char *q, char *base)
        LSA_R_OPEN_POL r_o;
 
        /* set up the LSA QUERY INFO response */
-       /* bzero(&(r_o.pol.data), POL_HND_SIZE); */
-       for (i = 0; i < POL_HND_SIZE; i++)
+       bzero(&(r_o.pol.data), POL_HND_SIZE);
+       for (i = 4; i < POL_HND_SIZE; i++)
        {
                r_o.pol.data[i] = i;
        }
@@ -337,6 +337,8 @@ BOOL api_ntLsarpcTNP(int cnum,int uid, char *param,char *data,
                        SIVAL(q, 0, 4); /* entries read */
                        SIVAL(q, 0, 8); /* trust information */
 
+                       q += 12;
+
                        endrpcreply(data, *rdata, q-*rdata, 0x8000001a, rdata_len);
 
                        break;
@@ -344,17 +346,19 @@ BOOL api_ntLsarpcTNP(int cnum,int uid, char *param,char *data,
 
                case LSA_CLOSE:
                {
-                       char *q = *rdata + 0x18;
+                       char *q;
 
                        DEBUG(3,("LSA_CLOSE\n"));
 
                        initrpcreply(data, *rdata);
 
-                       SIVAL(q, 0, 0);
-                       SIVAL(q, 0, 4);
-                       SIVAL(q, 0, 8);
-                       SIVAL(q, 0, 12);
-                       SIVAL(q, 0, 16);
+                       q = *rdata + 0x18;
+
+                       SIVAL(q, 0, 0); q += 4;
+                       SIVAL(q, 0, 0); q += 4;
+                       SIVAL(q, 0, 0); q += 4;
+                       SIVAL(q, 0, 0); q += 4;
+                       SIVAL(q, 0, 0); q += 4;
 
                        endrpcreply(data, *rdata, q-*rdata, 0, rdata_len);
 
@@ -374,6 +378,8 @@ BOOL api_ntLsarpcTNP(int cnum,int uid, char *param,char *data,
                        SIVAL(q, 0, 12);
                        SIVAL(q, 0, 16);
 
+                       q += 20;
+
                        endrpcreply(data, *rdata, q-*rdata, 0xc000034, rdata_len);
 
                        break;
index 855d46420a7d198d4042828333be0c63d9bcb392..64a0e640cb2d9f2c887fb59b87feeb355c63063a 100644 (file)
@@ -71,6 +71,8 @@ char* smb_io_dom_sid(BOOL io, DOM_SID *sid, char *q, char *base, int align, int
        DEBUG(5,("%s%04x smb_io_dom_sid\n",  tab_depth(depth), PTR_DIFF(q, base)));
        depth++;
 
+       q = align_offset(q, base, align);
+       
        DBG_RW_IVAL("num_auths ", depth, base, io, q, sid->num_auths); q += 4;
        DBG_RW_CVAL("sid_no    ", depth, base, io, q, sid->sid_no); q++; 
        DBG_RW_CVAL("num_auths ", depth, base, io, q, sid->num_auths); q++;