[SCM] Samba Shared Repository - branch master updated - 634c87dd7718aaea9c6f2dbcb8992e0a82bd159a

Jelmer Vernooij jelmer at samba.org
Tue Nov 11 16:12:37 GMT 2008


The branch, master has been updated
       via  634c87dd7718aaea9c6f2dbcb8992e0a82bd159a (commit)
       via  2f438b4cdeaacf55b0832bf71b2ef15b30cdd758 (commit)
       via  676f3c1c5cc8c2790462ec618f821c31e34165c7 (commit)
       via  8f23dff45ee5e1d5af8593dfce649b64ca4abd9f (commit)
       via  09998ab89d5b1675b3ab150b00dfc2f9093b5b26 (commit)
       via  15e011564ad2c5975aee8066296d6c662be93c26 (commit)
       via  0548642e5b0ba8eecf3a742b92e23d1fe9f4e68d (commit)
       via  99c2fac6b200b8371033ee3f1ff2d94b53689abc (commit)
       via  1ea97d76ede445b32908ab45e6f172108019b5bb (commit)
       via  d4d9a73ad1e5561a7a19e0c226936d1b21de60cb (commit)
       via  bb1d7684d2d2b0ebf11acb267de1885f79d05a5e (commit)
       via  61391d0ade10f79fb4d2a245b942ee93fa11a6d2 (commit)
       via  2efec54b8d8ae37b57747459ac7aa3c7a69cb6cc (commit)
       via  aaca059a35fd0b53ea3b726a073f8270f4bf1c01 (commit)
       via  3a9b42fa7545b9b3e312c92d0b070892c4e1dc2e (commit)
       via  bab255f09b1f20a4bbb0ec6806af4551a187b4a1 (commit)
       via  68a2ca11dc6b99d9127e964642e7d018acac0881 (commit)
       via  f20dd953ef902e3dcd2131df9f1cfaaa4436e857 (commit)
       via  f7dfea32fcaede24af545fb2e2b1701ccc676be5 (commit)
       via  9774927947039e3819827c52fc078cca3a323e6d (commit)
       via  a2a26da89981792ae0141d02ae40e598163c6b4d (commit)
       via  88ff1be03671376d88aa8b019313979244a9bdb7 (commit)
       via  8f1559c35032320a9a5e3f665ddfbfa41ab1a7d8 (commit)
       via  f42f1ae5a8e914790a9ac8fefe7cee3ec8988508 (commit)
       via  94b7db1fb49e1811af002163f9818706e1ea7f7a (commit)
       via  5ce30d0f4db94e61ae469155b863b124587495a4 (commit)
       via  93c6129c991dfb94496c0f7a9177a89fb275866d (commit)
       via  47d0c89302af6d84cb35bd1b735dd715105d9630 (commit)
       via  41776e1091d0b0bb71b94737a63db65a1fc53e8d (commit)
       via  5ae9ec3d4b0e8c272256994241ad3c82f3f88c31 (commit)
       via  e0a6e3b23be2be33a18938e4a3fe58157711e805 (commit)
       via  27021fe4005aa98f6bcd5d1170b453b7e4eb005e (commit)
       via  6ccd31b39386a3d5ea509320e33810445ad957e7 (commit)
       via  b26433da9849789248176afaf447f4d9a6e68dd9 (commit)
       via  afba859be003e6afa69c83aab934b11f2227192f (commit)
       via  6548c88ba70a1a3d1231ae5883a82ba083aa3e86 (commit)
       via  7f58bba558394fb3bade56b3bafa875963ef9764 (commit)
       via  244dee6275c9fa72a5a736d5d3f5b94cd17f34d4 (commit)
       via  9888ed1d9ba127d4964ec2b04b506d9d026c3683 (commit)
       via  1f846f6e617dfd10324004cf7fa76174a468bb16 (commit)
       via  a4c24b4d3069698ae17bb57dc131f85b25a0c03d (commit)
       via  843135c8411662ecdad65d613fb7855628ab94d8 (commit)
       via  fdc28cf8a57f652c2ff897f1624b43bb96e5b8cd (commit)
       via  e004307000d40fbe235827bc71229f4a5757c313 (commit)
       via  c8a8c2388b32977a54daf854f14c278a18824594 (commit)
       via  e78379be0b829da3d41971182f468892a623dd7e (commit)
       via  0474c8665d47ca6f89e483ff20f6401698095b55 (commit)
      from  dee2c61ce0a5ff2485f4a0704c9d7288ca75cb52 (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 634c87dd7718aaea9c6f2dbcb8992e0a82bd159a
Merge: 2f438b4cdeaacf55b0832bf71b2ef15b30cdd758 dee2c61ce0a5ff2485f4a0704c9d7288ca75cb52
Author: Jelmer Vernooij <jelmer at samba.org>
Date:   Tue Nov 11 17:11:57 2008 +0100

    Merge branch 'master' of ssh://git.samba.org/data/git/samba

commit 2f438b4cdeaacf55b0832bf71b2ef15b30cdd758
Author: Jelmer Vernooij <jelmer at samba.org>
Date:   Tue Nov 11 17:10:24 2008 +0100

    Remove unused variable, fix return.

commit 676f3c1c5cc8c2790462ec618f821c31e34165c7
Author: Günther Deschner <gd at samba.org>
Date:   Mon Nov 10 16:08:43 2008 +0100

    s3-build: re-run make samba3-idl (rid2sid).
    
    Guenther

commit 8f23dff45ee5e1d5af8593dfce649b64ca4abd9f
Author: Günther Deschner <gd at samba.org>
Date:   Mon Nov 10 15:55:09 2008 +0100

    s3-samr: remove old samr.idl file.
    
    Guenther

commit 09998ab89d5b1675b3ab150b00dfc2f9093b5b26
Author: Günther Deschner <gd at samba.org>
Date:   Mon Nov 10 14:42:27 2008 +0100

    s4-samr: merge samr_QueryUserInfo{2} from s3 idl. (fixme: python)
    
    Guenther

commit 15e011564ad2c5975aee8066296d6c662be93c26
Author: Günther Deschner <gd at samba.org>
Date:   Mon Nov 10 14:15:33 2008 +0100

    s4-samr: merge samr_QueryGroupInfo from s3 idl. (fixme python)
    
    Guenther

commit 0548642e5b0ba8eecf3a742b92e23d1fe9f4e68d
Author: Günther Deschner <gd at samba.org>
Date:   Mon Nov 10 14:09:06 2008 +0100

    s4-samr: merge samr_QueryAliasInfo from s3 idl. (fixme: python)
    
    Guenther

commit 99c2fac6b200b8371033ee3f1ff2d94b53689abc
Author: Günther Deschner <gd at samba.org>
Date:   Fri Nov 7 14:51:21 2008 +0100

    s4-samr: merge samr_EnumDomainGroups from s3 idl. (fixme: python)
    
    Guenther

commit 1ea97d76ede445b32908ab45e6f172108019b5bb
Author: Günther Deschner <gd at samba.org>
Date:   Fri Nov 7 11:25:01 2008 +0100

    s4-samr: merge samr_EnumDomainUsers from s3 idl. (fixme: python)
    
    Guenther

commit d4d9a73ad1e5561a7a19e0c226936d1b21de60cb
Author: Günther Deschner <gd at samba.org>
Date:   Fri Nov 7 02:57:58 2008 +0100

    s4-samr: merge samr_EnumDomains from s3 idl. (fixme: python)
    
    Guenther

commit bb1d7684d2d2b0ebf11acb267de1885f79d05a5e
Author: Günther Deschner <gd at samba.org>
Date:   Fri Nov 7 02:42:45 2008 +0100

    s4-samr: merge samr_LookupDomain from s3 idl. (fixme: python)
    
    Guenther

commit 61391d0ade10f79fb4d2a245b942ee93fa11a6d2
Author: Günther Deschner <gd at samba.org>
Date:   Wed Nov 5 14:28:17 2008 +0100

    s4-samr: merge samr_LookupNames from s3 idl. (fixme: python)
    
    Guenther

commit 2efec54b8d8ae37b57747459ac7aa3c7a69cb6cc
Author: Günther Deschner <gd at samba.org>
Date:   Wed Nov 5 13:37:49 2008 +0100

    s4-samr: merge samr_EnumDomainAliases from s3 idl. (fixme: python)
    
    Guenther

commit aaca059a35fd0b53ea3b726a073f8270f4bf1c01
Author: Günther Deschner <gd at samba.org>
Date:   Wed Nov 5 12:32:24 2008 +0100

    s4-samr: merge samr_QueryDisplayInfo from s3 idl. (fixme: python)
    
    Guenther

commit 3a9b42fa7545b9b3e312c92d0b070892c4e1dc2e
Author: Günther Deschner <gd at samba.org>
Date:   Wed Nov 5 11:17:22 2008 +0100

    s4-samr: merge samr_QueryDisplayInfo2 from s3 idl. (fixme: python)
    
    Guenther

commit bab255f09b1f20a4bbb0ec6806af4551a187b4a1
Author: Günther Deschner <gd at samba.org>
Date:   Wed Nov 5 11:15:08 2008 +0100

    s4-samr: merge samr_QueryDisplayInfo3 from s3 idl. (fixme: python)
    
    Guenther

commit 68a2ca11dc6b99d9127e964642e7d018acac0881
Author: Günther Deschner <gd at samba.org>
Date:   Wed Nov 5 10:58:35 2008 +0100

    s4-samr: merge samr_GetGroupsForUser from s3 idl. (fixme: python)
    
    Guenther

commit f20dd953ef902e3dcd2131df9f1cfaaa4436e857
Author: Günther Deschner <gd at samba.org>
Date:   Wed Nov 5 03:02:37 2008 +0100

    s4-samr: merge samr_QueryDomainInfo2 from s3 idl. (fixme: python)
    
    Guenther

commit f7dfea32fcaede24af545fb2e2b1701ccc676be5
Author: Günther Deschner <gd at samba.org>
Date:   Wed Nov 5 02:59:51 2008 +0100

    s4-samr: merge samr_QueryDomainInfo from s3 idl. (fixme python)
    
    Guenther

commit 9774927947039e3819827c52fc078cca3a323e6d
Author: Günther Deschner <gd at samba.org>
Date:   Wed Nov 5 02:00:12 2008 +0100

    s4-samr: merge samr_QueryGroupMember from s3 idl. (fixme: python)
    
    Guenther

commit a2a26da89981792ae0141d02ae40e598163c6b4d
Author: Günther Deschner <gd at samba.org>
Date:   Wed Nov 5 01:51:51 2008 +0100

    s4-samr: merge samr_Connect5 from s3 idl. (fixme python)
    
    Guenther

commit 88ff1be03671376d88aa8b019313979244a9bdb7
Author: Günther Deschner <gd at samba.org>
Date:   Wed Nov 5 01:39:39 2008 +0100

    s4-samr: merge samr_GetBootKeyInformation from s3 idl. (fixme: python)
    
    Guenther

commit 8f1559c35032320a9a5e3f665ddfbfa41ab1a7d8
Author: Günther Deschner <gd at samba.org>
Date:   Wed Nov 5 01:34:55 2008 +0100

    s4-samr: merge samr_GetDomPwInfo from s3 idl. (fixme: python)
    
    Guenther

commit f42f1ae5a8e914790a9ac8fefe7cee3ec8988508
Author: Günther Deschner <gd at samba.org>
Date:   Wed Nov 5 01:28:49 2008 +0100

    s4-samr: merge samr_GetUserPwInfo from s3 idl. (fixme: python)
    
    Guenther

commit 94b7db1fb49e1811af002163f9818706e1ea7f7a
Author: Günther Deschner <gd at samba.org>
Date:   Tue Oct 28 00:03:28 2008 +0100

    s4-samr: merge samr_RidToSid from s3 idl. (fixme: python)
    
    Guenther

commit 5ce30d0f4db94e61ae469155b863b124587495a4
Author: Günther Deschner <gd at samba.org>
Date:   Mon Oct 27 22:57:51 2008 +0100

    s4-samr: merge samr_QuerySecurity from s3 idl. (fixme: python)
    
    Guenther

commit 93c6129c991dfb94496c0f7a9177a89fb275866d
Author: Günther Deschner <gd at samba.org>
Date:   Wed Nov 5 02:12:38 2008 +0100

    s4-samr: merge samr_LookupRids from s3 idl.
    
    Guenther

commit 47d0c89302af6d84cb35bd1b735dd715105d9630
Author: Günther Deschner <gd at samba.org>
Date:   Wed Nov 5 02:04:39 2008 +0100

    s4-samr: merge samr_ValidatePassword from s3 idl.
    
    Guenther

commit 41776e1091d0b0bb71b94737a63db65a1fc53e8d
Author: Günther Deschner <gd at samba.org>
Date:   Tue Nov 4 19:46:43 2008 +0100

    s4-samr: merge samr_GetDisplayEnumerationIndex2 from s3 idl.
    
    Guenther

commit 5ae9ec3d4b0e8c272256994241ad3c82f3f88c31
Author: Günther Deschner <gd at samba.org>
Date:   Tue Nov 4 19:46:24 2008 +0100

    s4-samr: merge samr_GetDisplayEnumerationIndex from s3 idl.
    
    Guenther

commit e0a6e3b23be2be33a18938e4a3fe58157711e805
Author: Günther Deschner <gd at samba.org>
Date:   Tue Nov 4 19:40:24 2008 +0100

    s4-samr: merge samr_ChangePasswordUser3 from s3 idl.
    
    Guenther

commit 27021fe4005aa98f6bcd5d1170b453b7e4eb005e
Author: Günther Deschner <gd at samba.org>
Date:   Thu Oct 23 19:52:34 2008 +0200

    s4-samr: merge Alias Object specific access rights from s3 idl.
    
    Guenther

commit 6ccd31b39386a3d5ea509320e33810445ad957e7
Author: Günther Deschner <gd at samba.org>
Date:   Thu Oct 23 19:45:17 2008 +0200

    s4-samr: merge Group Object specific access rights from s3 idl.
    
    Guenther

commit b26433da9849789248176afaf447f4d9a6e68dd9
Author: Günther Deschner <gd at samba.org>
Date:   Thu Oct 23 19:38:21 2008 +0200

    s4-samr: merge Domain Object specific access rights from s3 idl.
    
    Guenther

commit afba859be003e6afa69c83aab934b11f2227192f
Author: Günther Deschner <gd at samba.org>
Date:   Thu Oct 23 19:23:43 2008 +0200

    s4-samr: merge User Object specific access rights from s3 idl.
    
    Guenther

commit 6548c88ba70a1a3d1231ae5883a82ba083aa3e86
Author: Günther Deschner <gd at samba.org>
Date:   Thu Oct 23 19:00:21 2008 +0200

    s4-samr: merge SAM server specific access rights from s3 idl.
    
    Guenther

commit 7f58bba558394fb3bade56b3bafa875963ef9764
Author: Günther Deschner <gd at samba.org>
Date:   Mon Nov 10 14:02:34 2008 +0100

    s4-samr: fix tests for binary parameter string.
    
    Guenther

commit 244dee6275c9fa72a5a736d5d3f5b94cd17f34d4
Author: Günther Deschner <gd at samba.org>
Date:   Mon Nov 10 11:26:43 2008 +0100

    s4-samr: prepare for Query.*Info calls: change macros.
    
    Guenther

commit 9888ed1d9ba127d4964ec2b04b506d9d026c3683
Author: Günther Deschner <gd at samba.org>
Date:   Fri Nov 7 15:04:46 2008 +0100

    s4-samr: merge samr_UserInfo20 from s3 idl.
    
    This must not be treated as a normal string (strlen truncates it).
    
    Guenther

commit 1f846f6e617dfd10324004cf7fa76174a468bb16
Author: Günther Deschner <gd at samba.org>
Date:   Mon Nov 10 16:09:11 2008 +0100

    s3-build: re-run make samba3-idl (after cleanup).
    
    Guenther

commit a4c24b4d3069698ae17bb57dc131f85b25a0c03d
Author: Günther Deschner <gd at samba.org>
Date:   Wed Nov 5 13:39:25 2008 +0100

    s3-samr-idl: cleanup.
    
    Guenther

commit 843135c8411662ecdad65d613fb7855628ab94d8
Author: Günther Deschner <gd at samba.org>
Date:   Mon Nov 10 15:53:19 2008 +0100

    s4-samr: move samr.idl to toplevel idl directory.
    
    Guenther

commit fdc28cf8a57f652c2ff897f1624b43bb96e5b8cd
Author: Günther Deschner <gd at samba.org>
Date:   Mon Nov 10 12:32:26 2008 +0100

    s3-netlogon: fix type of parameters string in user delta.
    
    Guenther

commit e004307000d40fbe235827bc71229f4a5757c313
Author: Günther Deschner <gd at samba.org>
Date:   Mon Nov 10 12:30:35 2008 +0100

    s4-netlogon: change parameters string to lsa_BinaryString.
    
    Guenther

commit c8a8c2388b32977a54daf854f14c278a18824594
Author: Günther Deschner <gd at samba.org>
Date:   Mon Nov 10 20:35:41 2008 +0100

    s4-dsdb: add samdb_msg_add_parameters.
    
    Guenther

commit e78379be0b829da3d41971182f468892a623dd7e
Author: Günther Deschner <gd at samba.org>
Date:   Mon Nov 10 20:35:32 2008 +0100

    s4-dsdb: add samdb_result_parameters.
    
    Guenther

commit 0474c8665d47ca6f89e483ff20f6401698095b55
Author: Günther Deschner <gd at samba.org>
Date:   Mon Nov 10 12:55:12 2008 +0100

    nterrors: add NT_STATUS_DS_BUSY.
    
    Guenther

-----------------------------------------------------------------------

Summary of changes:
 libcli/util/ntstatus.h                  |    1 +
 librpc/idl/netlogon.idl                 |    2 +-
 {source3/librpc => librpc}/idl/samr.idl |   17 +-
 pidl/lib/Parse/Pidl/Samba4/Python.pm    |    3 +-
 source3/Makefile.in                     |    2 +-
 source3/libnet/libnet_samsync_passdb.c  |    6 +-
 source3/librpc/gen_ndr/cli_samr.c       |    2 +-
 source3/librpc/gen_ndr/cli_samr.h       |    2 +-
 source3/librpc/gen_ndr/ndr_netlogon.c   |   10 +-
 source3/librpc/gen_ndr/ndr_samr.c       |   27 +-
 source3/librpc/gen_ndr/netlogon.h       |    2 +-
 source3/librpc/gen_ndr/samr.h           |    4 +-
 source3/librpc/gen_ndr/srv_samr.c       |    2 +-
 source3/libsmb/nterr.c                  |    1 +
 source3/rpc_server/srv_samr_nt.c        |    3 +
 source3/winbindd/winbindd_rpc.c         |    2 +
 source4/dsdb/common/util.c              |   33 +
 source4/libcli/util/nterr.c             |    1 +
 source4/libnet/groupinfo.c              |   18 +-
 source4/libnet/groupman.c               |   10 +-
 source4/libnet/libnet_domain.c          |   21 +-
 source4/libnet/libnet_group.c           |   16 +-
 source4/libnet/libnet_join.c            |   25 +-
 source4/libnet/libnet_passwd.c          |   17 +-
 source4/libnet/libnet_samsync_ldb.c     |    6 +-
 source4/libnet/libnet_user.c            |   16 +-
 source4/libnet/userinfo.c               |   16 +-
 source4/libnet/userman.c                |   33 +-
 source4/librpc/idl/samr.idl             | 1424 -------------------------------
 source4/rpc_server/samr/dcesrv_samr.c   |  361 +++++----
 source4/rpc_server/samr/samr_password.c |   11 +-
 source4/torture/libnet/libnet_domain.c  |    6 +-
 source4/torture/libnet/libnet_group.c   |    9 +-
 source4/torture/libnet/libnet_user.c    |    9 +-
 source4/torture/libnet/utils.c          |   18 +-
 source4/torture/rpc/samba3rpc.c         |   53 +-
 source4/torture/rpc/samr.c              |  527 ++++++++----
 source4/torture/rpc/samr_accessmask.c   |   29 +-
 source4/torture/rpc/samsync.c           |  149 ++--
 source4/torture/rpc/schannel.c          |    2 +
 source4/torture/rpc/testjoin.c          |   17 +-
 source4/winbind/wb_async_helpers.c      |    7 +-
 42 files changed, 965 insertions(+), 1955 deletions(-)
 rename {source3/librpc => librpc}/idl/samr.idl (99%)
 delete mode 100644 source4/librpc/idl/samr.idl


Changeset truncated at 500 lines:

diff --git a/libcli/util/ntstatus.h b/libcli/util/ntstatus.h
index fa4553d..139562d 100644
--- a/libcli/util/ntstatus.h
+++ b/libcli/util/ntstatus.h
@@ -592,6 +592,7 @@ typedef uint32_t NTSTATUS;
 #define NT_STATUS_TOO_MANY_LINKS NT_STATUS(0xC0000000 | 0x0265)
 #define NT_STATUS_QUOTA_LIST_INCONSISTENT NT_STATUS(0xC0000000 | 0x0266)
 #define NT_STATUS_FILE_IS_OFFLINE NT_STATUS(0xC0000000 | 0x0267)
+#define NT_STATUS_DS_BUSY NT_STATUS(0xC0000000 | 0x02a5)
 #define NT_STATUS_DS_NO_MORE_RIDS NT_STATUS(0xC0000000 | 0x02a8)
 #define NT_STATUS_NOT_A_REPARSE_POINT NT_STATUS(0xC0000000 | 0x0275)
 #define NT_STATUS_CURRENT_DOMAIN_NOT_ALLOWED NT_STATUS(0xC0000000 | 0x02E9)
diff --git a/librpc/idl/netlogon.idl b/librpc/idl/netlogon.idl
index 7649589..e9b5170 100644
--- a/librpc/idl/netlogon.idl
+++ b/librpc/idl/netlogon.idl
@@ -436,7 +436,7 @@ interface netlogon
 		boolean8 lm_password_present;
 		boolean8 password_expired;
 		lsa_String comment;
-		lsa_String parameters;
+		lsa_BinaryString parameters;
 		uint16 country_code;
 		uint16 code_page;
 		netr_USER_PRIVATE_INFO user_private_info;
diff --git a/source3/librpc/idl/samr.idl b/librpc/idl/samr.idl
similarity index 99%
rename from source3/librpc/idl/samr.idl
rename to librpc/idl/samr.idl
index f47e099..ee17940 100644
--- a/source3/librpc/idl/samr.idl
+++ b/librpc/idl/samr.idl
@@ -417,7 +417,7 @@ import "misc.idl", "lsa.idl", "security.idl";
 	/************************/
 	/* Function    0x09     */
 	/*
-	  only levels 1, 3, 4, 6, 7, 9, 12 are valid for this 
+	  only levels 1, 3, 4, 6, 7, 9, 12 are valid for this
 	  call in w2k3
 	*/
 	NTSTATUS samr_SetDomainInfo(
@@ -436,14 +436,10 @@ import "misc.idl", "lsa.idl", "security.idl";
 		[out,ref]     policy_handle *group_handle,
 		[out,ref]     uint32 *rid
 		);
-		
+
 
 	/************************/
 	/* Function    0x0b     */
-
-	const int MAX_SAM_ENTRIES_W2K = 0x400; /* 1024 */
-	const int MAX_SAM_ENTRIES_W95 = 50;
-
 	NTSTATUS samr_EnumDomainGroups(
 		[in]          policy_handle *domain_handle,
 		[in,out,ref]  uint32 *resume_handle,
@@ -853,7 +849,7 @@ import "misc.idl", "lsa.idl", "security.idl";
 	typedef struct {
 		samr_AcctFlags acct_flags;
 	} samr_UserInfo16;
-	
+
 	typedef struct {
 		NTTIME acct_expiry;
 	} samr_UserInfo17;
@@ -1135,7 +1131,7 @@ import "misc.idl", "lsa.idl", "security.idl";
 	  this seems to be an alphabetic search function. The returned index
 	  is the index for samr_QueryDisplayInfo needed to get names occurring
 	  after the specified name. The supplied name does not need to exist
-	  in the database (for example you can supply just a first letter for 
+	  in the database (for example you can supply just a first letter for
 	  searching starting at that letter)
 
 	  The level corresponds to the samr_QueryDisplayInfo level
@@ -1330,7 +1326,7 @@ import "misc.idl", "lsa.idl", "security.idl";
 	/************************/
 	/* Function    0x3a     */
 	/*
-	  seems to be an exact alias for samr_SetUserInfo() 
+	  seems to be an exact alias for samr_SetUserInfo()
 	*/
 	[public] NTSTATUS samr_SetUserInfo2(
 		[in,ref]                   policy_handle *user_handle,
@@ -1434,10 +1430,9 @@ import "misc.idl", "lsa.idl", "security.idl";
 	NTSTATUS samr_RidToSid(
 		[in,ref]    policy_handle *domain_handle,
 		[in]        uint32        rid,
-		[out,ref]   dom_sid2      *sid
+		[out,ref]   dom_sid2      **sid
 		);
 
-
 	/************************/
 	/* Function    0x42     */
 
diff --git a/pidl/lib/Parse/Pidl/Samba4/Python.pm b/pidl/lib/Parse/Pidl/Samba4/Python.pm
index 38aee2c..a3107d4 100644
--- a/pidl/lib/Parse/Pidl/Samba4/Python.pm
+++ b/pidl/lib/Parse/Pidl/Samba4/Python.pm
@@ -702,7 +702,7 @@ sub Interface($$$)
 		$self->pidl("if (!NT_STATUS_IS_OK(status)) {");
 		$self->indent;
 		$self->pidl("PyErr_SetNTSTATUS(status);");
-		$self->pidl("return;");
+		$self->pidl("return NULL;");
 		$self->deindent;
 		$self->pidl("}");
 
@@ -1181,7 +1181,6 @@ sub Parse($$$$$)
 	$self->pidl("{");
 	$self->indent;
 	$self->pidl("PyObject *m;");
-	$self->pidl("NTSTATUS status;");
 	$self->pidl("");
 
 	foreach (@{$self->{ready_types}}) {
diff --git a/source3/Makefile.in b/source3/Makefile.in
index be075ad..c048e19 100644
--- a/source3/Makefile.in
+++ b/source3/Makefile.in
@@ -1225,7 +1225,7 @@ samba3-idl::
 		../librpc/idl/initshutdown.idl ../librpc/idl/srvsvc.idl ../librpc/idl/svcctl.idl \
 		../librpc/idl/eventlog.idl ../librpc/idl/wkssvc.idl ../librpc/idl/netlogon.idl \
 		../librpc/idl/notify.idl ../librpc/idl/epmapper.idl librpc/idl/messaging.idl \
-		../librpc/idl/xattr.idl ../librpc/idl/misc.idl librpc/idl/samr.idl \
+		../librpc/idl/xattr.idl ../librpc/idl/misc.idl ../librpc/idl/samr.idl \
 		../librpc/idl/security.idl ../librpc/idl/dssetup.idl ../librpc/idl/krb5pac.idl \
 		../librpc/idl/ntsvcs.idl librpc/idl/libnetapi.idl ../librpc/idl/drsuapi.idl \
 		../librpc/idl/drsblobs.idl ../librpc/idl/nbt.idl \
diff --git a/source3/libnet/libnet_samsync_passdb.c b/source3/libnet/libnet_samsync_passdb.c
index 1faef7b..7ace77c 100644
--- a/source3/libnet/libnet_samsync_passdb.c
+++ b/source3/libnet/libnet_samsync_passdb.c
@@ -118,12 +118,12 @@ static NTSTATUS sam_account_from_delta(struct samu *account,
 			pdb_set_profile_path(account, new_string, PDB_CHANGED);
 	}
 
-	if (r->parameters.string) {
+	if (r->parameters.array) {
 		DATA_BLOB mung;
 		char *newstr;
 		old_string = pdb_get_munged_dial(account);
-		mung.length = r->parameters.length;
-		mung.data = (uint8 *) r->parameters.string;
+		mung.length = r->parameters.length * 2;
+		mung.data = (uint8_t *) r->parameters.array;
 		newstr = (mung.length == 0) ? NULL :
 			base64_encode_data_blob(talloc_tos(), mung);
 
diff --git a/source3/librpc/gen_ndr/cli_samr.c b/source3/librpc/gen_ndr/cli_samr.c
index 179bd00..7edb790 100644
--- a/source3/librpc/gen_ndr/cli_samr.c
+++ b/source3/librpc/gen_ndr/cli_samr.c
@@ -2838,7 +2838,7 @@ NTSTATUS rpccli_samr_RidToSid(struct rpc_pipe_client *cli,
 			      TALLOC_CTX *mem_ctx,
 			      struct policy_handle *domain_handle /* [in] [ref] */,
 			      uint32_t rid /* [in]  */,
-			      struct dom_sid2 *sid /* [out] [ref] */)
+			      struct dom_sid2 **sid /* [out] [ref] */)
 {
 	struct samr_RidToSid r;
 	NTSTATUS status;
diff --git a/source3/librpc/gen_ndr/cli_samr.h b/source3/librpc/gen_ndr/cli_samr.h
index 7216d0c..b57d633 100644
--- a/source3/librpc/gen_ndr/cli_samr.h
+++ b/source3/librpc/gen_ndr/cli_samr.h
@@ -375,7 +375,7 @@ NTSTATUS rpccli_samr_RidToSid(struct rpc_pipe_client *cli,
 			      TALLOC_CTX *mem_ctx,
 			      struct policy_handle *domain_handle /* [in] [ref] */,
 			      uint32_t rid /* [in]  */,
-			      struct dom_sid2 *sid /* [out] [ref] */);
+			      struct dom_sid2 **sid /* [out] [ref] */);
 NTSTATUS rpccli_samr_SetDsrmPassword(struct rpc_pipe_client *cli,
 				     TALLOC_CTX *mem_ctx,
 				     struct lsa_String *name /* [in] [unique] */,
diff --git a/source3/librpc/gen_ndr/ndr_netlogon.c b/source3/librpc/gen_ndr/ndr_netlogon.c
index 6575dbc..ac23c36 100644
--- a/source3/librpc/gen_ndr/ndr_netlogon.c
+++ b/source3/librpc/gen_ndr/ndr_netlogon.c
@@ -2513,7 +2513,7 @@ static enum ndr_err_code ndr_push_netr_DELTA_USER(struct ndr_push *ndr, int ndr_
 		NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->lm_password_present));
 		NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->password_expired));
 		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->comment));
-		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->parameters));
+		NDR_CHECK(ndr_push_lsa_BinaryString(ndr, NDR_SCALARS, &r->parameters));
 		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->country_code));
 		NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->code_page));
 		NDR_CHECK(ndr_push_netr_USER_PRIVATE_INFO(ndr, NDR_SCALARS, &r->user_private_info));
@@ -2540,7 +2540,7 @@ static enum ndr_err_code ndr_push_netr_DELTA_USER(struct ndr_push *ndr, int ndr_
 		NDR_CHECK(ndr_push_samr_Password(ndr, NDR_BUFFERS, &r->lmpassword));
 		NDR_CHECK(ndr_push_samr_Password(ndr, NDR_BUFFERS, &r->ntpassword));
 		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->comment));
-		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->parameters));
+		NDR_CHECK(ndr_push_lsa_BinaryString(ndr, NDR_BUFFERS, &r->parameters));
 		NDR_CHECK(ndr_push_netr_USER_PRIVATE_INFO(ndr, NDR_BUFFERS, &r->user_private_info));
 		NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
 		NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
@@ -2578,7 +2578,7 @@ static enum ndr_err_code ndr_pull_netr_DELTA_USER(struct ndr_pull *ndr, int ndr_
 		NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->lm_password_present));
 		NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->password_expired));
 		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->comment));
-		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->parameters));
+		NDR_CHECK(ndr_pull_lsa_BinaryString(ndr, NDR_SCALARS, &r->parameters));
 		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->country_code));
 		NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->code_page));
 		NDR_CHECK(ndr_pull_netr_USER_PRIVATE_INFO(ndr, NDR_SCALARS, &r->user_private_info));
@@ -2605,7 +2605,7 @@ static enum ndr_err_code ndr_pull_netr_DELTA_USER(struct ndr_pull *ndr, int ndr_
 		NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_BUFFERS, &r->lmpassword));
 		NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_BUFFERS, &r->ntpassword));
 		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->comment));
-		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->parameters));
+		NDR_CHECK(ndr_pull_lsa_BinaryString(ndr, NDR_BUFFERS, &r->parameters));
 		NDR_CHECK(ndr_pull_netr_USER_PRIVATE_INFO(ndr, NDR_BUFFERS, &r->user_private_info));
 		NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
 		NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
@@ -2643,7 +2643,7 @@ _PUBLIC_ void ndr_print_netr_DELTA_USER(struct ndr_print *ndr, const char *name,
 	ndr_print_uint8(ndr, "lm_password_present", r->lm_password_present);
 	ndr_print_uint8(ndr, "password_expired", r->password_expired);
 	ndr_print_lsa_String(ndr, "comment", &r->comment);
-	ndr_print_lsa_String(ndr, "parameters", &r->parameters);
+	ndr_print_lsa_BinaryString(ndr, "parameters", &r->parameters);
 	ndr_print_uint16(ndr, "country_code", r->country_code);
 	ndr_print_uint16(ndr, "code_page", r->code_page);
 	ndr_print_netr_USER_PRIVATE_INFO(ndr, "user_private_info", &r->user_private_info);
diff --git a/source3/librpc/gen_ndr/ndr_samr.c b/source3/librpc/gen_ndr/ndr_samr.c
index f83d0f0..e1b8fd1 100644
--- a/source3/librpc/gen_ndr/ndr_samr.c
+++ b/source3/librpc/gen_ndr/ndr_samr.c
@@ -11907,7 +11907,10 @@ static enum ndr_err_code ndr_push_samr_RidToSid(struct ndr_push *ndr, int flags,
 		if (r->out.sid == NULL) {
 			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
 		}
-		NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.sid));
+		NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.sid));
+		if (*r->out.sid) {
+			NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.sid));
+		}
 		NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
 	}
 	return NDR_ERR_SUCCESS;
@@ -11915,8 +11918,10 @@ static enum ndr_err_code ndr_push_samr_RidToSid(struct ndr_push *ndr, int flags,
 
 static enum ndr_err_code ndr_pull_samr_RidToSid(struct ndr_pull *ndr, int flags, struct samr_RidToSid *r)
 {
+	uint32_t _ptr_sid;
 	TALLOC_CTX *_mem_save_domain_handle_0;
 	TALLOC_CTX *_mem_save_sid_0;
+	TALLOC_CTX *_mem_save_sid_1;
 	if (flags & NDR_IN) {
 		ZERO_STRUCT(r->out);
 
@@ -11937,7 +11942,18 @@ static enum ndr_err_code ndr_pull_samr_RidToSid(struct ndr_pull *ndr, int flags,
 		}
 		_mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
 		NDR_PULL_SET_MEM_CTX(ndr, r->out.sid, LIBNDR_FLAG_REF_ALLOC);
-		NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.sid));
+		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
+		if (_ptr_sid) {
+			NDR_PULL_ALLOC(ndr, *r->out.sid);
+		} else {
+			*r->out.sid = NULL;
+		}
+		if (*r->out.sid) {
+			_mem_save_sid_1 = NDR_PULL_GET_MEM_CTX(ndr);
+			NDR_PULL_SET_MEM_CTX(ndr, *r->out.sid, 0);
+			NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.sid));
+			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_1, 0);
+		}
 		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, LIBNDR_FLAG_REF_ALLOC);
 		NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
 	}
@@ -11966,7 +11982,12 @@ _PUBLIC_ void ndr_print_samr_RidToSid(struct ndr_print *ndr, const char *name, i
 		ndr->depth++;
 		ndr_print_ptr(ndr, "sid", r->out.sid);
 		ndr->depth++;
-		ndr_print_dom_sid2(ndr, "sid", r->out.sid);
+		ndr_print_ptr(ndr, "sid", *r->out.sid);
+		ndr->depth++;
+		if (*r->out.sid) {
+			ndr_print_dom_sid2(ndr, "sid", *r->out.sid);
+		}
+		ndr->depth--;
 		ndr->depth--;
 		ndr_print_NTSTATUS(ndr, "result", r->out.result);
 		ndr->depth--;
diff --git a/source3/librpc/gen_ndr/netlogon.h b/source3/librpc/gen_ndr/netlogon.h
index e1dc69c..51cca40 100644
--- a/source3/librpc/gen_ndr/netlogon.h
+++ b/source3/librpc/gen_ndr/netlogon.h
@@ -327,7 +327,7 @@ struct netr_DELTA_USER {
 	uint8_t lm_password_present;
 	uint8_t password_expired;
 	struct lsa_String comment;
-	struct lsa_String parameters;
+	struct lsa_BinaryString parameters;
 	uint16_t country_code;
 	uint16_t code_page;
 	struct netr_USER_PRIVATE_INFO user_private_info;
diff --git a/source3/librpc/gen_ndr/samr.h b/source3/librpc/gen_ndr/samr.h
index 8c8f3f7..d900c29 100644
--- a/source3/librpc/gen_ndr/samr.h
+++ b/source3/librpc/gen_ndr/samr.h
@@ -33,8 +33,6 @@
 #define GENERIC_RIGHTS_ALIAS_READ	( (STANDARD_RIGHTS_READ_ACCESS|SAMR_ALIAS_ACCESS_GET_MEMBERS) )
 #define GENERIC_RIGHTS_ALIAS_WRITE	( (STANDARD_RIGHTS_WRITE_ACCESS|SAMR_ALIAS_ACCESS_REMOVE_MEMBER|SAMR_ALIAS_ACCESS_ADD_MEMBER|SAMR_ALIAS_ACCESS_SET_INFO) )
 #define GENERIC_RIGHTS_ALIAS_EXECUTE	( (STANDARD_RIGHTS_EXECUTE_ACCESS|SAMR_ALIAS_ACCESS_LOOKUP_INFO) )
-#define MAX_SAM_ENTRIES_W2K	( 0x400 )
-#define MAX_SAM_ENTRIES_W95	( 50 )
 #define SAMR_ENUM_USERS_MULTIPLIER	( 54 )
 #define PASS_MUST_CHANGE_AT_NEXT_LOGON	( 0x01 )
 #define PASS_DONT_CHANGE_AT_NEXT_LOGON	( 0x00 )
@@ -1747,7 +1745,7 @@ struct samr_RidToSid {
 	} in;
 
 	struct {
-		struct dom_sid2 *sid;/* [ref] */
+		struct dom_sid2 **sid;/* [ref] */
 		NTSTATUS result;
 	} out;
 
diff --git a/source3/librpc/gen_ndr/srv_samr.c b/source3/librpc/gen_ndr/srv_samr.c
index 3e3a1cc..f4facd2 100644
--- a/source3/librpc/gen_ndr/srv_samr.c
+++ b/source3/librpc/gen_ndr/srv_samr.c
@@ -5202,7 +5202,7 @@ static bool api_samr_RidToSid(pipes_struct *p)
 	}
 
 	ZERO_STRUCT(r->out);
-	r->out.sid = talloc_zero(r, struct dom_sid2);
+	r->out.sid = talloc_zero(r, struct dom_sid2 *);
 	if (r->out.sid == NULL) {
 		talloc_free(r);
 		return false;
diff --git a/source3/libsmb/nterr.c b/source3/libsmb/nterr.c
index 1ba230c..465d88a 100644
--- a/source3/libsmb/nterr.c
+++ b/source3/libsmb/nterr.c
@@ -532,6 +532,7 @@ static const nt_err_code_struct nt_errs[] =
 	{ "NT_STATUS_TOO_MANY_LINKS", NT_STATUS_TOO_MANY_LINKS },
 	{ "NT_STATUS_QUOTA_LIST_INCONSISTENT", NT_STATUS_QUOTA_LIST_INCONSISTENT },
 	{ "NT_STATUS_FILE_IS_OFFLINE", NT_STATUS_FILE_IS_OFFLINE },
+	{ "NT_STATUS_DS_BUSY", NT_STATUS_DS_BUSY },
 	{ "NT_STATUS_DS_NO_MORE_RIDS", NT_STATUS_DS_NO_MORE_RIDS },
 	{ "NT_STATUS_NOT_A_REPARSE_POINT", NT_STATUS_NOT_A_REPARSE_POINT },
 	{ "NT_STATUS_DOWNGRADE_DETECTED", NT_STATUS_DOWNGRADE_DETECTED },
diff --git a/source3/rpc_server/srv_samr_nt.c b/source3/rpc_server/srv_samr_nt.c
index c573173..62ac1cb 100644
--- a/source3/rpc_server/srv_samr_nt.c
+++ b/source3/rpc_server/srv_samr_nt.c
@@ -45,6 +45,9 @@
 
 #define DISP_INFO_CACHE_TIMEOUT 10
 
+#define MAX_SAM_ENTRIES_W2K 0x400 /* 1024 */
+#define MAX_SAM_ENTRIES_W95 50
+
 typedef struct disp_info {
 	DOM_SID sid; /* identify which domain this is. */
 	bool builtin_domain; /* Quick flag to check if this is the builtin domain. */
diff --git a/source3/winbindd/winbindd_rpc.c b/source3/winbindd/winbindd_rpc.c
index d966e50..7dea342 100644
--- a/source3/winbindd/winbindd_rpc.c
+++ b/source3/winbindd/winbindd_rpc.c
@@ -636,6 +636,8 @@ static NTSTATUS lookup_usergroups(struct winbindd_domain *domain,
 	return NT_STATUS_OK;
 }
 
+#define MAX_SAM_ENTRIES_W2K 0x400 /* 1024 */
+
 NTSTATUS msrpc_lookup_useraliases(struct winbindd_domain *domain,
 				  TALLOC_CTX *mem_ctx,
 				  uint32 num_sids, const DOM_SID *sids,
diff --git a/source4/dsdb/common/util.c b/source4/dsdb/common/util.c
index 69e4562..2161286 100644
--- a/source4/dsdb/common/util.c
+++ b/source4/dsdb/common/util.c
@@ -657,6 +657,28 @@ uint32_t samdb_result_acct_flags(struct ldb_context *sam_ctx, TALLOC_CTX *mem_ct
 	return acct_flags;
 }
 
+struct lsa_BinaryString samdb_result_parameters(TALLOC_CTX *mem_ctx,
+						struct ldb_message *msg,
+						const char *attr)
+{
+	struct lsa_BinaryString s;
+	const struct ldb_val *val = ldb_msg_find_ldb_val(msg, attr);
+
+	ZERO_STRUCT(s);
+
+	if (!val) {
+		return s;
+	}
+
+	s.array = talloc_array(mem_ctx, uint16_t, val->length/2);
+	if (!s.array) {
+		return s;
+	}
+	s.length = s.size = val->length/2;
+	memcpy(s.array, val->data, val->length);
+
+	return s;
+}
 
 /* Find an attribute, with a particular value */
 
@@ -897,6 +919,17 @@ int samdb_msg_add_logon_hours(struct ldb_context *sam_ldb, TALLOC_CTX *mem_ctx,
 }
 
 /*
+  add a parameters element to a message
+*/
+int samdb_msg_add_parameters(struct ldb_context *sam_ldb, TALLOC_CTX *mem_ctx, struct ldb_message *msg,
+			     const char *attr_name, struct lsa_BinaryString *parameters)
+{
+	struct ldb_val val;
+	val.length = parameters->length * 2;
+	val.data = (uint8_t *)parameters->array;
+	return ldb_msg_add_value(msg, attr_name, &val, NULL);
+}
+/*
   add a general value element to a message
 */
 int samdb_msg_add_value(struct ldb_context *sam_ldb, TALLOC_CTX *mem_ctx, struct ldb_message *msg,
diff --git a/source4/libcli/util/nterr.c b/source4/libcli/util/nterr.c
index e95f022..e94ed36 100644
--- a/source4/libcli/util/nterr.c
+++ b/source4/libcli/util/nterr.c
@@ -548,6 +548,7 @@ static const nt_err_code_struct nt_errs[] =
 	{ "NT_STATUS_CURRENT_DOMAIN_NOT_ALLOWED", NT_STATUS_CURRENT_DOMAIN_NOT_ALLOWED },
 	{ "NT_STATUS_OBJECTID_NOT_FOUND", NT_STATUS_OBJECTID_NOT_FOUND },
 	{ "NT_STATUS_DOWNGRADE_DETECTED", NT_STATUS_DOWNGRADE_DETECTED },
+	{ "NT_STATUS_DS_BUSY", NT_STATUS_DS_BUSY },
 	{ "STATUS_MORE_ENTRIES", STATUS_MORE_ENTRIES },
 	{ "STATUS_SOME_UNMAPPED", STATUS_SOME_UNMAPPED },
 	{ "STATUS_NOTIFY_CLEANUP", STATUS_NOTIFY_CLEANUP },
diff --git a/source4/libnet/groupinfo.c b/source4/libnet/groupinfo.c
index 1da6646..5c94c34 100644
--- a/source4/libnet/groupinfo.c
+++ b/source4/libnet/groupinfo.c
@@ -83,8 +83,8 @@ static void continue_groupinfo_lookup(struct rpc_request *req)
 	if (s->monitor_fn) {
 		msg.type = mon_SamrLookupName;
 		msg_lookup = talloc(s, struct msg_rpc_lookup_name);
-		msg_lookup->rid = s->lookup.out.rids.ids;
-		msg_lookup->count = s->lookup.out.rids.count;
+		msg_lookup->rid = s->lookup.out.rids->ids;
+		msg_lookup->count = s->lookup.out.rids->count;
 		msg.data = (void*)msg_lookup;
 		msg.data_size = sizeof(*msg_lookup);
 		
@@ -94,7 +94,7 @@ static void continue_groupinfo_lookup(struct rpc_request *req)
 
 	/* have we actually got name resolved
 	   - we're looking for only one at the moment */
-	if (s->lookup.out.rids.count == 0) {
+	if (s->lookup.out.rids->count == 0) {
 		composite_error(c, NT_STATUS_NO_SUCH_USER);
 	}
 
@@ -103,7 +103,7 @@ static void continue_groupinfo_lookup(struct rpc_request *req)
 	/* prepare parameters for LookupNames */
 	s->opengroup.in.domain_handle   = &s->domain_handle;
 	s->opengroup.in.access_mask     = SEC_FLAG_MAXIMUM_ALLOWED;
-	s->opengroup.in.rid             = s->lookup.out.rids.ids[0];
+	s->opengroup.in.rid             = s->lookup.out.rids->ids[0];
 	s->opengroup.out.group_handle   = &s->group_handle;
 
 	/* send request */
@@ -152,6 +152,8 @@ static void continue_groupinfo_opengroup(struct rpc_request *req)
 	/* prepare parameters for QueryGroupInfo call */
 	s->querygroupinfo.in.group_handle = &s->group_handle;
 	s->querygroupinfo.in.level        = s->level;
+	s->querygroupinfo.out.info        = talloc(s, union samr_GroupInfo *);
+	if (composite_nomem(s->querygroupinfo.out.info, c)) return;
 	
 	/* queue rpc call, set event handling and new state */
 	querygroup_req = dcerpc_samr_QueryGroupInfo_send(s->pipe, c, &s->querygroupinfo);
@@ -185,7 +187,7 @@ static void continue_groupinfo_getgroup(struct rpc_request *req)
 		return;
 	}
 
-	s->info = talloc_steal(s, s->querygroupinfo.out.info);
+	s->info = talloc_steal(s, *s->querygroupinfo.out.info);
 
 	/* issue a monitor message */
 	if (s->monitor_fn) {
@@ -301,7 +303,11 @@ struct composite_context *libnet_rpc_groupinfo_send(struct dcerpc_pipe *p,
 
 		s->lookup.in.names[0].string  = talloc_strdup(s, io->in.groupname);
 		if (composite_nomem(s->lookup.in.names[0].string, c)) return c;
-		
+		s->lookup.out.rids         = talloc_zero(s, struct samr_Ids);
+		s->lookup.out.types        = talloc_zero(s, struct samr_Ids);
+		if (composite_nomem(s->lookup.out.rids, c)) return c;
+		if (composite_nomem(s->lookup.out.types, c)) return c;
+
 		/* send request */
 		lookup_req = dcerpc_samr_LookupNames_send(p, c, &s->lookup);
 		if (composite_nomem(lookup_req, c)) return c;


-- 
Samba Shared Repository


More information about the samba-cvs mailing list