Changeset 751 for trunk/server/source3/smbd/trans2.c
- Timestamp:
- Nov 29, 2012, 1:59:04 PM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/server/source3/smbd/trans2.c
r745 r751 876 876 reply_outbuf(req, 10, total_sent_thistime + alignment_offset 877 877 + data_alignment_offset); 878 879 /*880 * We might have SMBtrans2s in req which was transferred to881 * the outbuf, fix that.882 */883 SCVAL(req->outbuf, smb_com, SMBtrans2);884 878 885 879 /* Set total params and data to be sent */ … … 1097 1091 } 1098 1092 1099 if (!map_open_params_to_ntcreate(smb_fname, deny_mode, open_ofun, 1093 if (!map_open_params_to_ntcreate(smb_fname->base_name, deny_mode, 1094 open_ofun, 1100 1095 &access_mask, &share_mode, 1101 1096 &create_disposition, … … 2284 2279 struct dptr_struct *dirptr = NULL; 2285 2280 struct smbd_server_connection *sconn = req->sconn; 2281 uint32_t ucf_flags = (UCF_SAVE_LCOMP | UCF_ALWAYS_ALLOW_WCARD_LCOMP); 2286 2282 2287 2283 if (total_params < 13) { … … 2327 2323 goto out; 2328 2324 } 2325 ucf_flags |= UCF_UNIX_NAME_LOOKUP; 2329 2326 break; 2330 2327 default: … … 2344 2341 req->flags2 & FLAGS2_DFS_PATHNAMES, 2345 2342 directory, 2346 (UCF_SAVE_LCOMP | 2347 UCF_ALWAYS_ALLOW_WCARD_LCOMP), 2343 ucf_flags, 2348 2344 &mask_contains_wcard, 2349 2345 &smb_dname); … … 4686 4682 case SMB_QUERY_FILE_STREAM_INFO: 4687 4683 case SMB_FILE_STREAM_INFORMATION: { 4688 unsigned int num_streams ;4689 struct stream_struct *streams ;4684 unsigned int num_streams = 0; 4685 struct stream_struct *streams = NULL; 4690 4686 4691 4687 DEBUG(10,("smbd_do_qfilepathinfo: " … … 4696 4692 } 4697 4693 4698 status = SMB_VFS_STREAMINFO( 4699 conn, fsp, smb_fname->base_name, talloc_tos(), 4700 &num_streams, &streams); 4694 status = vfs_streaminfo(conn, fsp, smb_fname->base_name, 4695 talloc_tos(), &num_streams, &streams); 4701 4696 4702 4697 if (!NT_STATUS_IS_OK(status)) { … … 5117 5112 uint32_t name_hash; 5118 5113 char *fname = NULL; 5114 uint32_t ucf_flags = 0; 5119 5115 5120 5116 /* qpathinfo */ … … 5128 5124 DEBUG(3,("call_trans2qfilepathinfo: TRANSACT2_QPATHINFO: level = %d\n", info_level)); 5129 5125 5130 if (INFO_LEVEL_IS_UNIX(info_level) && !lp_unix_extensions()) { 5131 reply_nterror(req, NT_STATUS_INVALID_LEVEL); 5132 return; 5126 if (INFO_LEVEL_IS_UNIX(info_level)) { 5127 if (!lp_unix_extensions()) { 5128 reply_nterror(req, NT_STATUS_INVALID_LEVEL); 5129 return; 5130 } 5131 if (info_level == SMB_QUERY_FILE_UNIX_BASIC || 5132 info_level == SMB_QUERY_FILE_UNIX_INFO2 || 5133 info_level == SMB_QUERY_FILE_UNIX_LINK) { 5134 ucf_flags |= UCF_UNIX_NAME_LOOKUP; 5135 } 5133 5136 } 5134 5137 … … 5145 5148 req->flags2 & FLAGS2_DFS_PATHNAMES, 5146 5149 fname, 5147 0,5150 ucf_flags, 5148 5151 NULL, 5149 5152 &smb_fname); … … 5841 5844 /* The set is across all open files on this dev/inode pair. */ 5842 5845 if (!set_delete_on_close(fsp, delete_on_close, 5846 conn->session_info->security_token, 5843 5847 &conn->session_info->utok)) { 5844 5848 return NT_STATUS_ACCESS_DENIED; … … 7998 8002 } else { 7999 8003 char *fname = NULL; 8004 uint32_t ucf_flags = 0; 8000 8005 8001 8006 /* set path info */ … … 8014 8019 } 8015 8020 8021 if (info_level == SMB_SET_FILE_UNIX_BASIC || 8022 info_level == SMB_SET_FILE_UNIX_INFO2 || 8023 info_level == SMB_FILE_RENAME_INFORMATION || 8024 info_level == SMB_POSIX_PATH_UNLINK) { 8025 ucf_flags |= UCF_UNIX_NAME_LOOKUP; 8026 } 8027 8016 8028 status = filename_convert(req, conn, 8017 8029 req->flags2 & FLAGS2_DFS_PATHNAMES, 8018 8030 fname, 8019 0,8031 ucf_flags, 8020 8032 NULL, 8021 8033 &smb_fname); … … 8844 8856 show_msg((char *)req->inbuf); 8845 8857 8858 /* Windows clients expect all replies to 8859 a transact secondary (SMBtranss2 0x33) 8860 to have a command code of transact 8861 (SMBtrans2 0x32). See bug #8989 8862 and also [MS-CIFS] section 2.2.4.47.2 8863 for details. 8864 */ 8865 req->cmd = SMBtrans2; 8866 8846 8867 if (req->wct < 8) { 8847 8868 reply_nterror(req, NT_STATUS_INVALID_PARAMETER);
Note:
See TracChangeset
for help on using the changeset viewer.