The branch, master has been updated
       via  6e4cc12604f6bcf53961326d497f118dfe5da139 (commit)
       via  91bfd5f201f302156fac7f1bc7a685e6f3c22cf3 (commit)
      from  e0711ffa526e22e3ffe483319ce5d7725d578647 (commit)

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


- Log -----------------------------------------------------------------
commit 6e4cc12604f6bcf53961326d497f118dfe5da139
Author: Matthias Dieter Wallnöfer <[EMAIL PROTECTED]>
Date:   Tue Dec 9 23:32:04 2008 +0100

    s4-samr: Fix Bug #5946. userparameters handling in torture test.
    
    Signed-off-by: Günther Deschner <[EMAIL PROTECTED]>

commit 91bfd5f201f302156fac7f1bc7a685e6f3c22cf3
Author: Matthias Dieter Wallnöfer <[EMAIL PROTECTED]>
Date:   Tue Dec 9 23:31:15 2008 +0100

    s4-samr: Fix Bug #5946. userparameters handling in samr server.
    
    Signed-off-by: Günther Deschner <[EMAIL PROTECTED]>

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

Summary of changes:
 source4/rpc_server/samr/dcesrv_samr.c |   10 ++++++----
 source4/torture/rpc/samr.c            |    8 +++++++-
 2 files changed, 13 insertions(+), 5 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source4/rpc_server/samr/dcesrv_samr.c 
b/source4/rpc_server/samr/dcesrv_samr.c
index 680fb77..df23e11 100644
--- a/source4/rpc_server/samr/dcesrv_samr.c
+++ b/source4/rpc_server/samr/dcesrv_samr.c
@@ -140,11 +140,13 @@
 
 #define SET_PARAMETERS(msg, field, attr) do {                          \
        struct ldb_message_element *set_el;                             \
-       if (samdb_msg_add_parameters(sam_ctx, mem_ctx, msg, attr, 
&r->in.info->field) != 0) { \
-               return NT_STATUS_NO_MEMORY;                             \
+       if (r->in.info->field.length != 0) {                            \
+               if (samdb_msg_add_parameters(sam_ctx, mem_ctx, msg, attr, 
&r->in.info->field) != 0) { \
+                       return NT_STATUS_NO_MEMORY;                     \
+               }                                                       \
+               set_el = ldb_msg_find_element(msg, attr);               \
+               set_el->flags = LDB_FLAG_MOD_REPLACE;                   \
        }                                                               \
-       set_el = ldb_msg_find_element(msg, attr);                       \
-       set_el->flags = LDB_FLAG_MOD_REPLACE;                           \
 } while (0)
 
 
diff --git a/source4/torture/rpc/samr.c b/source4/torture/rpc/samr.c
index d29c864..2912628 100644
--- a/source4/torture/rpc/samr.c
+++ b/source4/torture/rpc/samr.c
@@ -409,6 +409,12 @@ static bool test_SetUserInfo(struct dcerpc_pipe *p, struct 
torture_context *tctx
                           SAMR_FIELD_PARAMETERS);
        TEST_USERINFO_BINARYSTRING(21, parameters, 20, parameters, "xx21-20 
parameters",
                           SAMR_FIELD_PARAMETERS);
+       /* also empty user parameters are allowed */
+       TEST_USERINFO_BINARYSTRING(20, parameters, 21, parameters, "", 0);
+       TEST_USERINFO_BINARYSTRING(21, parameters, 21, parameters, "",
+                          SAMR_FIELD_PARAMETERS);
+       TEST_USERINFO_BINARYSTRING(21, parameters, 20, parameters, "",
+                          SAMR_FIELD_PARAMETERS);
 
        TEST_USERINFO_INT(2, country_code, 2, country_code, __LINE__, 0);
        TEST_USERINFO_INT(2, country_code, 21, country_code, __LINE__, 0);
@@ -2674,7 +2680,7 @@ static bool test_SetPassword_pwdlastset(struct 
dcerpc_pipe *p,
                                        struct policy_handle *handle,
                                        char **password)
 {
-       int i, s = 0, q = 0, f = 0, l = 0, z = 0;
+       int s = 0, q = 0, f = 0, l = 0, z = 0;
        bool ret = true;
        int delay = 500000;
        bool set_levels[] = { false, true };


-- 
Samba Shared Repository

Reply via email to