summaryrefslogtreecommitdiff
path: root/source3/smbd/ipc.c
diff options
context:
space:
mode:
authorVolker Lendecke <vl@samba.org>2009-01-20 15:21:04 +0100
committerVolker Lendecke <vl@samba.org>2009-01-20 16:41:14 +0100
commitb8b6cddb29b51dcbe0d352c1ce780804ee0664fd (patch)
tree298de8047299256b85c07db5dfebe455781b01dd /source3/smbd/ipc.c
parentbd4718d2812f5f59d890be0284642ab78c3f1bc2 (diff)
downloadsamba-b8b6cddb29b51dcbe0d352c1ce780804ee0664fd.tar.gz
samba-b8b6cddb29b51dcbe0d352c1ce780804ee0664fd.tar.bz2
samba-b8b6cddb29b51dcbe0d352c1ce780804ee0664fd.zip
Remove some smb fsp knowledge from rpc_server/
np_open/read/write don't have to know about files_struct
Diffstat (limited to 'source3/smbd/ipc.c')
-rw-r--r--source3/smbd/ipc.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/source3/smbd/ipc.c b/source3/smbd/ipc.c
index fabc8393ce..7c150561b1 100644
--- a/source3/smbd/ipc.c
+++ b/source3/smbd/ipc.c
@@ -220,8 +220,14 @@ static void api_rpc_trans_reply(connection_struct *conn,
return;
}
- status = np_read(fsp, rdata, max_trans_reply, &data_len,
- &is_data_outstanding);
+ if (!fsp_is_np(fsp)) {
+ SAFE_FREE(rdata);
+ api_no_reply(conn,req);
+ return;
+ }
+
+ status = np_read(fsp->fake_file_handle, rdata, max_trans_reply,
+ &data_len, &is_data_outstanding);
if (!NT_STATUS_IS_OK(status)) {
SAFE_FREE(rdata);
api_no_reply(conn,req);
@@ -355,7 +361,8 @@ static void api_fd_reply(connection_struct *conn, uint16 vuid,
case TRANSACT_DCERPCCMD: {
/* dce/rpc command */
ssize_t nwritten;
- status = np_write(fsp, data, tdscnt, &nwritten);
+ status = np_write(fsp->fake_file_handle, data, tdscnt,
+ &nwritten);
if (!NT_STATUS_IS_OK(status)) {
api_no_reply(conn, req);
return;