Changeset 745 for trunk/server/source4/libcli/raw/rawfile.c
- Timestamp:
- Nov 27, 2012, 4:43:17 PM (13 years ago)
- Location:
- trunk/server
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/server
- Property svn:mergeinfo changed
/vendor/current merged: 581,587,591,594,597,600,615,618,740
- Property svn:mergeinfo changed
-
trunk/server/source4/libcli/raw/rawfile.c
r414 r745 349 349 if (parms->ntcreatex.in.sec_desc) { 350 350 enum ndr_err_code ndr_err; 351 ndr_err = ndr_push_struct_blob(&sd_blob, mem_ctx, NULL,351 ndr_err = ndr_push_struct_blob(&sd_blob, mem_ctx, 352 352 parms->ntcreatex.in.sec_desc, 353 353 (ndr_push_flags_fn_t)ndr_push_security_descriptor); … … 380 380 381 381 SIVAL(params, 0, parms->ntcreatex.in.flags); 382 SIVAL(params, 4, parms->ntcreatex.in.root_fid );382 SIVAL(params, 4, parms->ntcreatex.in.root_fid.fnum); 383 383 SIVAL(params, 8, parms->ntcreatex.in.access_mask); 384 384 SBVAL(params, 12, parms->ntcreatex.in.alloc_size); … … 565 565 SCVAL(req->out.vwv, VWV(2),0); /* padding */ 566 566 SIVAL(req->out.vwv, 7, parms->ntcreatex.in.flags); 567 SIVAL(req->out.vwv, 11, parms->ntcreatex.in.root_fid );567 SIVAL(req->out.vwv, 11, parms->ntcreatex.in.root_fid.fnum); 568 568 SIVAL(req->out.vwv, 15, parms->ntcreatex.in.access_mask); 569 569 SBVAL(req->out.vwv, 19, parms->ntcreatex.in.alloc_size); … … 617 617 } 618 618 break; 619 620 case RAW_OPEN_NTCREATEX_READX: 621 SETUP_REQUEST(SMBntcreateX, 24, 0); 622 SSVAL(req->out.vwv, VWV(0),SMB_CHAIN_NONE); 623 SSVAL(req->out.vwv, VWV(1),0); 624 SCVAL(req->out.vwv, VWV(2),0); /* padding */ 625 SIVAL(req->out.vwv, 7, parms->ntcreatexreadx.in.flags); 626 SIVAL(req->out.vwv, 11, parms->ntcreatexreadx.in.root_fid.fnum); 627 SIVAL(req->out.vwv, 15, parms->ntcreatexreadx.in.access_mask); 628 SBVAL(req->out.vwv, 19, parms->ntcreatexreadx.in.alloc_size); 629 SIVAL(req->out.vwv, 27, parms->ntcreatexreadx.in.file_attr); 630 SIVAL(req->out.vwv, 31, parms->ntcreatexreadx.in.share_access); 631 SIVAL(req->out.vwv, 35, parms->ntcreatexreadx.in.open_disposition); 632 SIVAL(req->out.vwv, 39, parms->ntcreatexreadx.in.create_options); 633 SIVAL(req->out.vwv, 43, parms->ntcreatexreadx.in.impersonation); 634 SCVAL(req->out.vwv, 47, parms->ntcreatexreadx.in.security_flags); 635 636 smbcli_req_append_string_len(req, parms->ntcreatexreadx.in.fname, STR_TERMINATE, &len); 637 SSVAL(req->out.vwv, 5, len); 638 639 if (tree->session->transport->negotiate.capabilities & CAP_LARGE_FILES) { 640 bigoffset = true; 641 } 642 643 smbcli_chained_request_setup(req, SMBreadX, bigoffset ? 12 : 10, 0); 644 645 SSVAL(req->out.vwv, VWV(0), SMB_CHAIN_NONE); 646 SSVAL(req->out.vwv, VWV(1), 0); 647 SSVAL(req->out.vwv, VWV(2), 0); 648 SIVAL(req->out.vwv, VWV(3), parms->ntcreatexreadx.in.offset); 649 SSVAL(req->out.vwv, VWV(5), parms->ntcreatexreadx.in.maxcnt & 0xFFFF); 650 SSVAL(req->out.vwv, VWV(6), parms->ntcreatexreadx.in.mincnt); 651 SIVAL(req->out.vwv, VWV(7), parms->ntcreatexreadx.in.maxcnt >> 16); 652 SSVAL(req->out.vwv, VWV(9), parms->ntcreatexreadx.in.remaining); 653 if (bigoffset) { 654 SIVAL(req->out.vwv, VWV(10),parms->ntcreatexreadx.in.offset>>32); 655 } 656 break; 657 619 658 case RAW_OPEN_SMB2: 620 659 return NULL; … … 754 793 } 755 794 break; 795 796 case RAW_OPEN_NTCREATEX_READX: 797 SMBCLI_CHECK_MIN_WCT(req, 34); 798 parms->ntcreatexreadx.out.oplock_level = CVAL(req->in.vwv, 4); 799 parms->ntcreatexreadx.out.file.fnum = SVAL(req->in.vwv, 5); 800 parms->ntcreatexreadx.out.create_action = IVAL(req->in.vwv, 7); 801 parms->ntcreatexreadx.out.create_time = smbcli_pull_nttime(req->in.vwv, 11); 802 parms->ntcreatexreadx.out.access_time = smbcli_pull_nttime(req->in.vwv, 19); 803 parms->ntcreatexreadx.out.write_time = smbcli_pull_nttime(req->in.vwv, 27); 804 parms->ntcreatexreadx.out.change_time = smbcli_pull_nttime(req->in.vwv, 35); 805 parms->ntcreatexreadx.out.attrib = IVAL(req->in.vwv, 43); 806 parms->ntcreatexreadx.out.alloc_size = BVAL(req->in.vwv, 47); 807 parms->ntcreatexreadx.out.size = BVAL(req->in.vwv, 55); 808 parms->ntcreatexreadx.out.file_type = SVAL(req->in.vwv, 63); 809 parms->ntcreatexreadx.out.ipc_state = SVAL(req->in.vwv, 65); 810 parms->ntcreatexreadx.out.is_directory = CVAL(req->in.vwv, 67); 811 812 status = smbcli_chained_advance(req); 813 if (!NT_STATUS_IS_OK(status)) { 814 return status; 815 } 816 817 SMBCLI_CHECK_WCT(req, 12); 818 parms->ntcreatexreadx.out.remaining = SVAL(req->in.vwv, VWV(2)); 819 parms->ntcreatexreadx.out.compaction_mode = SVAL(req->in.vwv, VWV(3)); 820 parms->ntcreatexreadx.out.nread = SVAL(req->in.vwv, VWV(5)); 821 if (parms->ntcreatexreadx.out.nread > 822 MAX(parms->ntcreatexreadx.in.mincnt, parms->ntcreatexreadx.in.maxcnt) || 823 !smbcli_raw_pull_data(&req->in.bufinfo, req->in.hdr + SVAL(req->in.vwv, VWV(6)), 824 parms->ntcreatexreadx.out.nread, 825 parms->ntcreatexreadx.out.data)) { 826 req->status = NT_STATUS_BUFFER_TOO_SMALL; 827 } 828 break; 829 756 830 case RAW_OPEN_SMB2: 757 831 req->status = NT_STATUS_INTERNAL_ERROR; … … 845 919 case RAW_LOCK_LOCKX: { 846 920 struct smb_lock_entry *lockp; 847 u int_t lck_size = (parms->lockx.in.mode & LOCKING_ANDX_LARGE_FILES)? 20 : 10;848 u int_t lock_count = parms->lockx.in.ulock_cnt + parms->lockx.in.lock_cnt;921 unsigned int lck_size = (parms->lockx.in.mode & LOCKING_ANDX_LARGE_FILES)? 20 : 10; 922 unsigned int lock_count = parms->lockx.in.ulock_cnt + parms->lockx.in.lock_cnt; 849 923 int i; 850 924
Note:
See TracChangeset
for help on using the changeset viewer.