s4-smbtorture: only pull info when status code indicates success in smbcli_rap_netpri...
authorGünther Deschner <gd@samba.org>
Wed, 16 Jun 2010 09:03:31 +0000 (11:03 +0200)
committerGünther Deschner <gd@samba.org>
Wed, 16 Jun 2010 10:15:24 +0000 (12:15 +0200)
Guenther

source3/auth/auth_winbind.c
source4/torture/rap/rap.c

index beaba7d4c0ff071ae318f2f94a34b3dcfb475c94..b111a2ae75b1f055f494a3139eb296a852738ac8 100644 (file)
@@ -43,7 +43,7 @@ static NTSTATUS check_winbind_security(const struct auth_context *auth_context,
                return NT_STATUS_INVALID_PARAMETER;
        }
 
-       DEBUG(10, ("Check auth for: [%s]", user_info->mapped.account_name));
+       DEBUG(10, ("Check auth for: [%s]\n", user_info->mapped.account_name));
 
        if (!auth_context) {
                DEBUG(3,("Password for user %s cannot be checked because we have no auth_info to get the challenge from.\n", 
@@ -73,9 +73,17 @@ static NTSTATUS check_winbind_security(const struct auth_context *auth_context,
               sizeof(params.password.response.challenge));
 
        params.password.response.nt_length      = user_info->nt_resp.length;
-       params.password.response.nt_data        = user_info->nt_resp.data;
+       if (params.password.response.nt_length) {
+               params.password.response.nt_data        = user_info->nt_resp.data;
+       } else {
+               params.password.response.nt_data        = NULL;
+       }
        params.password.response.lm_length      = user_info->lm_resp.length;
-       params.password.response.lm_data        = user_info->lm_resp.data;
+       if (params.password.response.lm_length) {
+               params.password.response.lm_data        = user_info->lm_resp.data;
+       } else {
+               params.password.response.lm_data        = NULL;
+       }
 
        /* we are contacting the privileged pipe */
        become_root();
index 33d67156a3004bc26cb41cdea30efd35f318c38a..34036f0ae72778e3246c01deb0febe3e0a88b1fa 100644 (file)
@@ -719,10 +719,12 @@ NTSTATUS smbcli_rap_netprintqgetinfo(struct smbcli_tree *tree,
        NDR_GOTO(ndr_pull_uint16(call->ndr_pull_param, NDR_SCALARS, &r->out.convert));
        NDR_GOTO(ndr_pull_uint16(call->ndr_pull_param, NDR_SCALARS, &r->out.available));
 
-       call->ndr_pull_data->relative_rap_convert = r->out.convert;
+       if (r->out.status == 0) {
+               call->ndr_pull_data->relative_rap_convert = r->out.convert;
 
-       NDR_GOTO(ndr_pull_set_switch_value(call->ndr_pull_data, &r->out.info, r->in.level));
-       NDR_GOTO(ndr_pull_rap_printq_info(call->ndr_pull_data, NDR_SCALARS|NDR_BUFFERS, &r->out.info));
+               NDR_GOTO(ndr_pull_set_switch_value(call->ndr_pull_data, &r->out.info, r->in.level));
+               NDR_GOTO(ndr_pull_rap_printq_info(call->ndr_pull_data, NDR_SCALARS|NDR_BUFFERS, &r->out.info));
+       }
 
        if (DEBUGLEVEL >= 10) {
                NDR_PRINT_OUT_DEBUG(rap_NetPrintQGetInfo, r);