summaryrefslogtreecommitdiff
path: root/source3/smbd/aio.c
diff options
context:
space:
mode:
authorVolker Lendecke <vl@samba.org>2011-08-02 21:16:26 +0200
committerVolker Lendecke <vlendec@samba.org>2011-08-02 22:33:15 +0200
commit5068a0d14df8cc6f1b4517c64f4356abc6606b58 (patch)
tree9e523b2b8026f908ba0229ce84f5f28424e3264e /source3/smbd/aio.c
parente114a21cc27504efc31f9be1616b91c6b1fcc59d (diff)
downloadsamba-5068a0d14df8cc6f1b4517c64f4356abc6606b58.tar.gz
samba-5068a0d14df8cc6f1b4517c64f4356abc6606b58.tar.bz2
samba-5068a0d14df8cc6f1b4517c64f4356abc6606b58.zip
s3: Fix smb2 handling error returns from aio
Found when reading with aio_fork beyond the end of file. Metze, Jeremy, please check! Without this we get [2011/08/02 21:02:54.082661, 0] lib/util.c:778(smb_panic_s3) PANIC (pid 2302): smbd/smb2_read.c:593: Type mismatch: name[NULL] expected[struct smbd_smb2_read_state] [2011/08/02 21:02:54.094316, 0] lib/util.c:882(log_stack_trace) BACKTRACE: 23 stack frames: #0 bin/smbd(log_stack_trace+0x2d) [0xb72873d8] #1 bin/smbd(smb_panic_s3+0x7c) [0xb7287529] #2 bin/smbd(smb_panic+0x2f) [0xb7277e1f] #3 /root/git/s3-work/source3/bin/libtalloc.so.2 [0xb6c6bc48] #4 /root/git/s3-work/source3/bin/libtalloc.so.2 [0xb6c6ec79] #5 /root/git/s3-work/source3/bin/libtalloc.so.2(_talloc_get_type_abort+0x34) [0xb6c6ecb3] #6 bin/smbd [0xb6fbc405] #7 bin/smbd(_tevent_req_notify_callback+0x4a) [0xb729a85a] #8 bin/smbd [0xb729a888] #9 bin/smbd(_tevent_req_done+0x19) [0xb729aa73] #10 bin/smbd [0xb6fae517] #11 bin/smbd [0xb6fad258] #12 bin/smbd(smbd_aio_complete_aio_ex+0xf5) [0xb6fad6e8] #13 /root/git/inst/modules/vfs/aio_fork.so [0xb66d4992] #14 bin/smbd(run_events_poll+0x400) [0xb7297df2] #15 bin/smbd(smbd_process+0xd75) [0xb6f9d3a7] #16 bin/smbd [0xb756f07b] #17 bin/smbd(run_events_poll+0x400) [0xb7297df2] #18 bin/smbd [0xb7298254] #19 bin/smbd(_tevent_loop_once+0x9e) [0xb72986ac] #20 bin/smbd(main+0x185c) [0xb7570e59] #21 /lib/i686/cmov/libc.so.6(__libc_start_main+0xe5) [0xb6b08455] #22 bin/smbd [0xb6f14e01] Autobuild-User: Volker Lendecke <vlendec@samba.org> Autobuild-Date: Tue Aug 2 22:33:15 CEST 2011 on sn-devel-104
Diffstat (limited to 'source3/smbd/aio.c')
-rw-r--r--source3/smbd/aio.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/source3/smbd/aio.c b/source3/smbd/aio.c
index db2926b4a4..98a35ed206 100644
--- a/source3/smbd/aio.c
+++ b/source3/smbd/aio.c
@@ -779,6 +779,7 @@ static int handle_aio_smb2_read_complete(struct aio_extra *aio_ex, int errcode)
if (!NT_STATUS_IS_OK(status)) {
tevent_req_nterror(subreq, status);
+ return errcode;
}
tevent_req_done(subreq);
@@ -812,6 +813,7 @@ static int handle_aio_smb2_write_complete(struct aio_extra *aio_ex, int errcode)
if (!NT_STATUS_IS_OK(status)) {
tevent_req_nterror(subreq, status);
+ return errcode;
}
tevent_req_done(subreq);