Changeset 134 for branches/samba-3.0/source/libsmb
- Timestamp:
- May 23, 2008, 6:56:41 AM (17 years ago)
- Location:
- branches/samba-3.0/source/libsmb
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/samba-3.0/source/libsmb/cliconnect.c
r124 r134 250 250 p += clistr_push(cli, p, pass, -1, STR_TERMINATE); /* password */ 251 251 SSVAL(cli->outbuf,smb_vwv7,PTR_DIFF(p, smb_buf(cli->outbuf))); 252 } 253 else { 252 } else { 253 /* For ucs2 passwords clistr_push calls ucs2_align, which causes 254 * the space taken by the unicode password to be one byte too 255 * long (as we're on an odd byte boundary here). Reduce the 256 * count by 1 to cope with this. Fixes smbclient against NetApp 257 * servers which can't cope. Fix from 258 * bryan.kolodziej@allenlund.com in bug #3840. 259 */ 254 260 p += clistr_push(cli, p, pass, -1, STR_UNICODE|STR_TERMINATE); /* unicode password */ 255 SSVAL(cli->outbuf,smb_vwv8,PTR_DIFF(p, smb_buf(cli->outbuf)) );261 SSVAL(cli->outbuf,smb_vwv8,PTR_DIFF(p, smb_buf(cli->outbuf))-1); 256 262 } 257 263 … … 1027 1033 1028 1034 return NT_STATUS_OK; 1029 1030 1035 } 1031 1036 -
branches/samba-3.0/source/libsmb/clireadwrite.c
r44 r134 353 353 354 354 while (received < blocks) { 355 ssize_t size1 = 0; 355 356 356 357 while ((issued - received < mpx) && (issued < blocks)) { 357 358 ssize_t bsent = issued * block; 358 ssize_t size1 = MIN(block, size - bsent); 359 360 size1 = MIN(block, size - bsent); 359 361 360 362 if (!cli_issue_write(cli, fnum, offset + bsent, … … 375 377 376 378 bwritten += SVAL(cli->inbuf, smb_vwv2); 377 bwritten += (((int)(SVAL(cli->inbuf, smb_vwv4)))<<16); 379 if (size1 > 0xFFFF) { 380 bwritten += (((int)(SVAL(cli->inbuf, smb_vwv4)))<<16); 381 } 378 382 } 379 383 -
branches/samba-3.0/source/libsmb/clitrans.c
r124 r134 96 96 } 97 97 98 /* Note we're in a trans state. Save the sequence 99 * numbers for replies. */ 100 client_set_trans_sign_state_on(cli, mid); 101 98 102 if (this_ldata < ldata || this_lparam < lparam) { 99 103 /* receive interim response */ 100 104 if (!cli_receive_smb(cli) || cli_is_error(cli)) { 105 client_set_trans_sign_state_off(cli, mid); 101 106 return(False); 102 107 } … … 108 113 this_lparam = MIN(lparam-tot_param,cli->max_xmit - 500); /* hack */ 109 114 this_ldata = MIN(ldata-tot_data,cli->max_xmit - (500+this_lparam)); 115 116 client_set_trans_sign_state_off(cli, mid); 117 client_set_trans_sign_state_on(cli, mid); 110 118 111 119 set_message(cli->outbuf,trans==SMBtrans?8:9,0,True); … … 140 148 show_msg(cli->outbuf); 141 149 if (!cli_send_smb(cli)) { 150 client_set_trans_sign_state_off(cli, mid); 142 151 return False; 143 152 } … … 318 327 out: 319 328 329 client_set_trans_sign_state_off(cli, SVAL(cli->inbuf,smb_mid)); 320 330 return ret; 321 331 } … … 385 395 } 386 396 397 /* Note we're in a trans state. Save the sequence 398 * numbers for replies. */ 399 client_set_trans_sign_state_on(cli, mid); 400 387 401 if (this_ldata < ldata || this_lparam < lparam) { 388 402 /* receive interim response */ 389 403 if (!cli_receive_smb(cli) || cli_is_error(cli)) { 404 client_set_trans_sign_state_off(cli, mid); 390 405 return(False); 391 406 } … … 429 444 430 445 if (!cli_send_smb(cli)) { 446 client_set_trans_sign_state_off(cli, mid); 431 447 return False; 432 448 } … … 628 644 out: 629 645 646 client_set_trans_sign_state_off(cli, SVAL(cli->inbuf,smb_mid)); 630 647 return ret; 631 648 } -
branches/samba-3.0/source/libsmb/libsmbclient.c
r71 r134 6365 6365 SAFE_FREE(context->user); 6366 6366 6367 DEBUG(3, ("Context %p succes fully freed\n", context));6367 DEBUG(3, ("Context %p successfully freed\n", context)); 6368 6368 SAFE_FREE(context->internal); 6369 6369 SAFE_FREE(context); -
branches/samba-3.0/source/libsmb/nterr.c
r1 r134 536 536 { "NT_STATUS_DS_NO_MORE_RIDS", NT_STATUS_DS_NO_MORE_RIDS }, 537 537 { "NT_STATUS_NOT_A_REPARSE_POINT", NT_STATUS_NOT_A_REPARSE_POINT }, 538 { "NT_STATUS_DOWNGRADE_DETECTED", NT_STATUS_DOWNGRADE_DETECTED }, 538 539 { "NT_STATUS_NO_MORE_ENTRIES", NT_STATUS_NO_MORE_ENTRIES }, 539 540 { "STATUS_MORE_ENTRIES", STATUS_MORE_ENTRIES }, -
branches/samba-3.0/source/libsmb/smb_signing.c
r124 r134 27 27 uint16 mid; 28 28 uint32 reply_seq_num; 29 BOOL can_delete; /* Set to False in trans state. */ 29 30 }; 30 31 … … 43 44 for (t = *list; t; t = t->next) { 44 45 if (t->mid == mid) { 45 DLIST_REMOVE(*list, t); 46 SAFE_FREE(t); 47 break; 46 return False; 48 47 } 49 48 } … … 54 53 t->mid = mid; 55 54 t->reply_seq_num = reply_seq_num; 55 t->can_delete = True; 56 56 57 57 /* … … 80 80 DEBUG(10,("get_sequence_for_reply: found seq = %u mid = %u\n", 81 81 (unsigned int)t->reply_seq_num, (unsigned int)t->mid )); 82 DLIST_REMOVE(*list, t); 83 SAFE_FREE(t); 82 if (t->can_delete) { 83 DLIST_REMOVE(*list, t); 84 SAFE_FREE(t); 85 } 86 return True; 87 } 88 } 89 return False; 90 } 91 92 static BOOL set_sequence_can_delete_flag(struct outstanding_packet_lookup **list, uint16 mid, BOOL can_delete_entry) 93 { 94 struct outstanding_packet_lookup *t; 95 96 for (t = *list; t; t = t->next) { 97 if (t->mid == mid) { 98 t->can_delete = can_delete_entry; 84 99 return True; 85 100 } … … 590 605 591 606 /*********************************************************** 607 Enter trans/trans2/nttrans state. 608 ************************************************************/ 609 610 BOOL client_set_trans_sign_state_on(struct cli_state *cli, uint16 mid) 611 { 612 struct smb_sign_info *si = &cli->sign_info; 613 struct smb_basic_signing_context *data = (struct smb_basic_signing_context *)si->signing_context; 614 615 if (!si->doing_signing) { 616 return True; 617 } 618 619 if (!data) { 620 return False; 621 } 622 623 if (!set_sequence_can_delete_flag(&data->outstanding_packet_list, mid, False)) { 624 return False; 625 } 626 627 return True; 628 } 629 630 /*********************************************************** 631 Leave trans/trans2/nttrans state. 632 ************************************************************/ 633 634 BOOL client_set_trans_sign_state_off(struct cli_state *cli, uint16 mid) 635 { 636 uint32 reply_seq_num; 637 struct smb_sign_info *si = &cli->sign_info; 638 struct smb_basic_signing_context *data = (struct smb_basic_signing_context *)si->signing_context; 639 640 if (!si->doing_signing) { 641 return True; 642 } 643 644 if (!data) { 645 return False; 646 } 647 648 if (!set_sequence_can_delete_flag(&data->outstanding_packet_list, mid, True)) { 649 return False; 650 } 651 652 /* Now delete the stored mid entry. */ 653 if (!get_sequence_for_reply(&data->outstanding_packet_list, mid, &reply_seq_num)) { 654 return False; 655 } 656 657 return True; 658 } 659 660 /*********************************************************** 592 661 SMB signing - Server implementation - send the MAC. 593 662 ************************************************************/ -
branches/samba-3.0/source/libsmb/trusts_util.c
r124 r134 42 42 43 43 if (cli->auth.auth_type != PIPE_AUTH_TYPE_SCHANNEL) { 44 uint32 neg_flags = NETLOGON_NEG_SELECT_AUTH2_FLAGS;44 uint32_t neg_flags = NETLOGON_NEG_AUTH2_ADS_FLAGS; 45 45 46 46 result = rpccli_netlogon_setup_creds(cli,
Note:
See TracChangeset
for help on using the changeset viewer.