The branch, v3-3-test has been updated
       via  5ee3d6c3b1394e705691247b471c4511244a97af (commit)
      from  3690f2d87549840b5408771d2596069ff1732fc5 (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-3-test


- Log -----------------------------------------------------------------
commit 5ee3d6c3b1394e705691247b471c4511244a97af
Author: Jeremy Allison <[EMAIL PROTECTED]>
Date:   Wed Oct 22 13:29:21 2008 -0700

    Janitor for Guenther, "fix _lsa_GetUserName."
    Jeremy.

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

Summary of changes:
 source/rpc_server/srv_lsa_nt.c |   27 ++++++++++++++++++++-------
 source/rpcclient/cmd_lsarpc.c  |    3 ++-
 2 files changed, 22 insertions(+), 8 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source/rpc_server/srv_lsa_nt.c b/source/rpc_server/srv_lsa_nt.c
index 910b302..77eecaf 100644
--- a/source/rpc_server/srv_lsa_nt.c
+++ b/source/rpc_server/srv_lsa_nt.c
@@ -1462,6 +1462,16 @@ NTSTATUS _lsa_GetUserName(pipes_struct *p,
        struct lsa_String *account_name = NULL;
        struct lsa_String *authority_name = NULL;
 
+       if (r->in.account_name &&
+          *r->in.account_name) {
+               return NT_STATUS_INVALID_PARAMETER;
+       }
+
+       if (r->in.authority_name &&
+          *r->in.authority_name) {
+               return NT_STATUS_INVALID_PARAMETER;
+       }
+
        if (p->server_info->guest) {
                /*
                 * I'm 99% sure this is not the right place to do this,
@@ -1481,17 +1491,20 @@ NTSTATUS _lsa_GetUserName(pipes_struct *p,
        if (!account_name) {
                return NT_STATUS_NO_MEMORY;
        }
+       init_lsa_String(account_name, username);
 
-       authority_name = TALLOC_ZERO_P(p->mem_ctx, struct lsa_String);
-       if (!authority_name) {
-               return NT_STATUS_NO_MEMORY;
+       if (r->out.authority_name) {
+               authority_name = TALLOC_ZERO_P(p->mem_ctx, struct lsa_String);
+               if (!authority_name) {
+                       return NT_STATUS_NO_MEMORY;
+               }
+               init_lsa_String(authority_name, domname);
        }
 
-       init_lsa_String(account_name, username);
-       init_lsa_String(authority_name, domname);
-
        *r->out.account_name = account_name;
-       *r->out.authority_name = authority_name;
+       if (r->out.authority_name) {
+               *r->out.authority_name = authority_name;
+       }
 
        return NT_STATUS_OK;
 }
diff --git a/source/rpcclient/cmd_lsarpc.c b/source/rpcclient/cmd_lsarpc.c
index 110b34c..e02fbee 100644
--- a/source/rpcclient/cmd_lsarpc.c
+++ b/source/rpcclient/cmd_lsarpc.c
@@ -1184,7 +1184,8 @@ static NTSTATUS cmd_lsa_get_username(struct 
rpc_pipe_client *cli,
        /* Print results */
 
        printf("Account Name: %s, Authority Name: %s\n",
-               account_name->string, authority_name->string);
+               account_name->string, authority_name ? authority_name->string :
+               "");
 
        rpccli_lsa_Close(cli, mem_ctx, &pol);
  done:


-- 
Samba Shared Repository

Reply via email to