Fix VFS layer:
[kai/samba.git] / source / smbd / nttrans.c
index 375c6c44f63b40f50b15e749097ac9909f774ad6..38de5586ea9e7d3249a130748ee5c178d59fe0bb 100644 (file)
@@ -40,6 +40,7 @@ static const char *known_nt_pipes[] = {
        "\\winreg",
        "\\spoolss",
        "\\netdfs",
+       "\\rpcecho",
        NULL
 };
 
@@ -1031,7 +1032,7 @@ static NTSTATUS set_sd(files_struct *fsp, char *data, uint32 sd_len, uint32 secu
        if (psd->off_dacl==0)
                security_info_sent &= ~DACL_SECURITY_INFORMATION;
        
-       ret = fsp->conn->vfs_ops.fset_nt_acl( fsp, fsp->fd, security_info_sent, psd);
+       ret = VFS_FSET_NT_ACL( fsp, fsp->fd, security_info_sent, psd);
        
        if (!ret) {
                talloc_destroy(mem_ctx);
@@ -1560,7 +1561,7 @@ static int call_nt_transact_query_security_desc(connection_struct *conn,
        if (!lp_nt_acl_support(SNUM(conn)))
                sd_size = get_null_nt_acl(mem_ctx, &psd);
        else
-               sd_size = conn->vfs_ops.fget_nt_acl(fsp, fsp->fd, &psd);
+               sd_size = VFS_FGET_NT_ACL(fsp, fsp->fd, &psd);
 
        if (sd_size == 0) {
                talloc_destroy(mem_ctx);
@@ -1871,7 +1872,7 @@ due to being in oplock break state.\n", (unsigned int)function_code ));
 
                        data_count = IVAL(inbuf, smb_nts_DataCount);
                        data_displacement = IVAL(inbuf, smb_nts_DataDisplacement);
-                       data_offset = IVAL(inbuf, smb_nts_DataDisplacement);
+                       data_offset = IVAL(inbuf, smb_nts_DataOffset);
                        num_data_sofar += data_count;
 
                        if (num_params_sofar > total_parameter_count || num_data_sofar > total_data_count) {
@@ -1990,5 +1991,5 @@ due to being in oplock break state.\n", (unsigned int)function_code ));
        SAFE_FREE(data);
        SAFE_FREE(setup);
        END_PROFILE(SMBnttrans);
-       return ERROR_DOS(ERRDOS,ERRinvalidparam);
+       return ERROR_NT(NT_STATUS_INVALID_PARAMETER);
 }