The branch, master has been updated via 824a300 s3:libsmb: cli_set_secdesc() only needs a const struct security_descriptor via 82413e8 libcli/security: add some const to marshall_sec_desc[_buf]() via 6219bb9 s3:libsmb: remove unused cli_query_secdesc_old() via baee2fb s3:libsmb_xattr: make use of the new cli_query_secdesc() via 7302277 s3-utils/net_rpc.c: replace cli_query_secdesc_old() via c436a7d s3-utils/net_rpc_printer.c: replace cli_query_secdesc_old() via eacd555 s3-utils/smbcacls.c: replace cli_query_secdesc_old() via 78f267d s3-client/client.c: replace cli_query_secdesc_old() via 6911b04 s3-torture: run_nttrans_create(): replace cli_query_secdesc_old() via cb4fc92 s3-libsmb: introduce new cli_query_secdesc() which returns NTSTATUS via 768646c s3-libsmb: rename cli_query_secdesc() to cli_query_secdesc_old() via 40e9d0c s3-libsmb: finally remove cli_read_old() via 8bdbdd4 s3-libsmb/libsmb_file.c: replace cli_read_old() with cli_read() via 473b16d s3-torture/nbio.c: replace cli_read_old() with cli_read() via 7833353 s3-torture/utable.c: replace cli_read_old() with cli_read() via ebc53c3 s3-utils/net_rpc_printer.c: print more info on write error via fd7631c s3-utils/net_rpc_printer.c: return on read error in net_copy_file() via 4b76c10 s3-torture/denytest.c: replace cli_read_old() with cli_read() via affc9d4 s3-libgpo/gpo_filesync.c: return on read error via bffc521 s3-client/clitar.c: replace cli_read_old() with cli_read() via 6d69574 s3-torture: run_oplock2(): replace cli_read_old() with cli_read() via 963aa98 s3-torture: run_fdsesstest(): replace cli_read_old() with cli_read() via 995978a s3-torture: run_fdpasstest(): replace cli_read_old() with cli_read() via cfec548 s3-torture: run_locktest7(): replace cli_read_old() with cli_read() via 4971a0a s3-torture: run_locktest7(): goto fail on read error from 1832c95 Fix bug 8314] - smbd crash with unknown user.
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master - Log ----------------------------------------------------------------- commit 824a300d2be8403dc9723a39e4bef88c43e46cc4 Author: Stefan Metzmacher <me...@samba.org> Date: Sat Jul 23 09:55:06 2011 +0200 s3:libsmb: cli_set_secdesc() only needs a const struct security_descriptor metze Autobuild-User: Stefan Metzmacher <me...@samba.org> Autobuild-Date: Sat Jul 23 11:08:19 CEST 2011 on sn-devel-104 commit 82413e829e03cc73b2caccea09e33f900fa99a4e Author: Stefan Metzmacher <me...@samba.org> Date: Sat Jul 23 09:54:31 2011 +0200 libcli/security: add some const to marshall_sec_desc[_buf]() metze commit 6219bb98999876c9729f2c1923841709b13313d5 Author: Stefan Metzmacher <me...@samba.org> Date: Sat Jul 23 09:54:04 2011 +0200 s3:libsmb: remove unused cli_query_secdesc_old() metze commit baee2fbcfd784cababf012b22a7d4be268b4af7b Author: Stefan Metzmacher <me...@samba.org> Date: Sat Jul 23 09:43:32 2011 +0200 s3:libsmb_xattr: make use of the new cli_query_secdesc() metze commit 7302277e43e9353cfc1a17048ebb43b0c109127a Author: Björn Baumbach <b...@sernet.de> Date: Fri Jul 22 17:07:30 2011 +0200 s3-utils/net_rpc.c: replace cli_query_secdesc_old() Signed-off-by: Stefan Metzmacher <me...@samba.org> commit c436a7d8129f7a1d0fd0ecad17d90c6738da5c0a Author: Björn Baumbach <b...@sernet.de> Date: Fri Jul 22 17:00:23 2011 +0200 s3-utils/net_rpc_printer.c: replace cli_query_secdesc_old() Signed-off-by: Stefan Metzmacher <me...@samba.org> commit eacd555f704e6929dcdddf96e4b7f6316272d368 Author: Björn Baumbach <b...@sernet.de> Date: Fri Jul 22 16:56:04 2011 +0200 s3-utils/smbcacls.c: replace cli_query_secdesc_old() Signed-off-by: Stefan Metzmacher <me...@samba.org> commit 78f267df699a053a532a69cd4187917d6213deb1 Author: Björn Baumbach <b...@sernet.de> Date: Fri Jul 22 16:51:10 2011 +0200 s3-client/client.c: replace cli_query_secdesc_old() Signed-off-by: Stefan Metzmacher <me...@samba.org> commit 6911b046064b234c592fedee33c77e4c0b7762e8 Author: Björn Baumbach <b...@sernet.de> Date: Fri Jul 22 15:50:13 2011 +0200 s3-torture: run_nttrans_create(): replace cli_query_secdesc_old() Signed-off-by: Stefan Metzmacher <me...@samba.org> commit cb4fc9217727c14cc5f92acf99160b7612974850 Author: Björn Baumbach <b...@sernet.de> Date: Fri Jul 22 15:11:31 2011 +0200 s3-libsmb: introduce new cli_query_secdesc() which returns NTSTATUS Replacement for cli_query_secdesc_old() Signed-off-by: Stefan Metzmacher <me...@samba.org> commit 768646c9a23c3b2d295af77826e82d3087076e36 Author: Björn Baumbach <b...@sernet.de> Date: Fri Jul 22 15:02:23 2011 +0200 s3-libsmb: rename cli_query_secdesc() to cli_query_secdesc_old() Will introduce new cli_query_secdesc() function Signed-off-by: Stefan Metzmacher <me...@samba.org> commit 40e9d0c440fb436f48e854d8b44b31fef47aaee7 Author: Björn Baumbach <b...@sernet.de> Date: Fri Jul 22 14:23:56 2011 +0200 s3-libsmb: finally remove cli_read_old() Replaced by new cli_read() which returns NTSTATUS instead of ssize_t. Signed-off-by: Stefan Metzmacher <me...@samba.org> commit 8bdbdd46f4aca2d4a1cc0babf1300b9eb158b8bb Author: Björn Baumbach <b...@sernet.de> Date: Fri Jul 22 14:22:29 2011 +0200 s3-libsmb/libsmb_file.c: replace cli_read_old() with cli_read() Signed-off-by: Stefan Metzmacher <me...@samba.org> commit 473b16dcbf31f385905738be56f5cba86c14cb01 Author: Björn Baumbach <b...@sernet.de> Date: Fri Jul 22 14:01:12 2011 +0200 s3-torture/nbio.c: replace cli_read_old() with cli_read() Signed-off-by: Stefan Metzmacher <me...@samba.org> commit 78333531ded3e2ec85d4478b8a194561687fddc8 Author: Björn Baumbach <b...@sernet.de> Date: Fri Jul 22 13:46:57 2011 +0200 s3-torture/utable.c: replace cli_read_old() with cli_read() Signed-off-by: Stefan Metzmacher <me...@samba.org> commit ebc53c3575a91d199e17aa1ec0befdd40919a6fc Author: Björn Baumbach <b...@sernet.de> Date: Fri Jul 22 13:44:49 2011 +0200 s3-utils/net_rpc_printer.c: print more info on write error Signed-off-by: Stefan Metzmacher <me...@samba.org> commit fd7631c633ec0909b3d28f94f038e1e01f9e4886 Author: Björn Baumbach <b...@sernet.de> Date: Fri Jul 22 13:39:05 2011 +0200 s3-utils/net_rpc_printer.c: return on read error in net_copy_file() replace cli_read_old() with cli_read() Signed-off-by: Stefan Metzmacher <me...@samba.org> commit 4b76c108ba2e567a7a2c96274590488a39d1c045 Author: Björn Baumbach <b...@sernet.de> Date: Fri Jul 22 13:06:13 2011 +0200 s3-torture/denytest.c: replace cli_read_old() with cli_read() Signed-off-by: Stefan Metzmacher <me...@samba.org> commit affc9d4b610305dd6f4142869399befc58056ae6 Author: Björn Baumbach <b...@sernet.de> Date: Fri Jul 22 12:44:56 2011 +0200 s3-libgpo/gpo_filesync.c: return on read error replace cli_read_old() with cli_read() Signed-off-by: Stefan Metzmacher <me...@samba.org> commit bffc521a8aa00ece7d330c6735c8ca787c91ba61 Author: Björn Baumbach <b...@sernet.de> Date: Fri Jul 22 12:35:03 2011 +0200 s3-client/clitar.c: replace cli_read_old() with cli_read() Signed-off-by: Stefan Metzmacher <me...@samba.org> commit 6d695749c741cf021ed8df1fa40f6fd8a25cf4a1 Author: Björn Baumbach <b...@sernet.de> Date: Fri Jul 22 12:29:59 2011 +0200 s3-torture: run_oplock2(): replace cli_read_old() with cli_read() Signed-off-by: Stefan Metzmacher <me...@samba.org> commit 963aa9856c9214815cbe6841db0e83d9d5f000eb Author: Björn Baumbach <b...@sernet.de> Date: Fri Jul 22 12:19:34 2011 +0200 s3-torture: run_fdsesstest(): replace cli_read_old() with cli_read() Signed-off-by: Stefan Metzmacher <me...@samba.org> commit 995978ae965ecb922c7a579d4e84836cfb937955 Author: Björn Baumbach <b...@sernet.de> Date: Fri Jul 22 12:12:42 2011 +0200 s3-torture: run_fdpasstest(): replace cli_read_old() with cli_read() Signed-off-by: Stefan Metzmacher <me...@samba.org> commit cfec548aa0cdd726911efb7fd5c501e464dfc3e0 Author: Stefan Metzmacher <me...@samba.org> Date: Sat Jul 23 09:16:27 2011 +0200 s3-torture: run_locktest7(): replace cli_read_old() with cli_read() Signed-off-by: Stefan Metzmacher <me...@samba.org> commit 4971a0a2bc5cc75d0142829d0fc16f1f2a06af17 Author: Stefan Metzmacher <me...@samba.org> Date: Sat Jul 23 09:10:09 2011 +0200 s3-torture: run_locktest7(): goto fail on read error Signed-off-by: Stefan Metzmacher <me...@samba.org> ----------------------------------------------------------------------- Summary of changes: libcli/security/secdesc.c | 4 +- libcli/security/secdesc.h | 4 +- source3/client/client.c | 10 ++-- source3/client/clitar.c | 9 ++-- source3/libgpo/gpo_filesync.c | 8 ++- source3/libsmb/clireadwrite.c | 14 ------ source3/libsmb/clisecdesc.c | 22 +++++---- source3/libsmb/libsmb_file.c | 10 ++-- source3/libsmb/libsmb_xattr.c | 26 +++++----- source3/libsmb/proto.h | 8 +-- source3/torture/denytest.c | 20 ++++++-- source3/torture/nbio.c | 19 ++++++-- source3/torture/test_nttrans_create.c | 2 +- source3/torture/torture.c | 83 ++++++++++++++++++++++----------- source3/torture/utable.c | 2 +- source3/utils/net_rpc.c | 2 +- source3/utils/net_rpc_printer.c | 32 +++++++++---- source3/utils/smbcacls.c | 7 ++- 18 files changed, 165 insertions(+), 117 deletions(-) Changeset truncated at 500 lines: diff --git a/libcli/security/secdesc.c b/libcli/security/secdesc.c index 2c8fbc5..fcd0828 100644 --- a/libcli/security/secdesc.c +++ b/libcli/security/secdesc.c @@ -261,7 +261,7 @@ struct security_descriptor *dup_sec_desc(TALLOC_CTX *ctx, const struct security_ Convert a secdesc into a byte stream ********************************************************************/ NTSTATUS marshall_sec_desc(TALLOC_CTX *mem_ctx, - struct security_descriptor *secdesc, + const struct security_descriptor *secdesc, uint8_t **data, size_t *len) { DATA_BLOB blob; @@ -287,7 +287,7 @@ NTSTATUS marshall_sec_desc(TALLOC_CTX *mem_ctx, ********************************************************************/ NTSTATUS marshall_sec_desc_buf(TALLOC_CTX *mem_ctx, - struct sec_desc_buf *secdesc_buf, + const struct sec_desc_buf *secdesc_buf, uint8_t **data, size_t *len) { DATA_BLOB blob; diff --git a/libcli/security/secdesc.h b/libcli/security/secdesc.h index 1e6d2e5..b8190a1 100644 --- a/libcli/security/secdesc.h +++ b/libcli/security/secdesc.h @@ -56,14 +56,14 @@ struct security_descriptor *dup_sec_desc(TALLOC_CTX *ctx, const struct security_ Convert a secdesc into a byte stream ********************************************************************/ NTSTATUS marshall_sec_desc(TALLOC_CTX *mem_ctx, - struct security_descriptor *secdesc, + const struct security_descriptor *secdesc, uint8_t **data, size_t *len); /******************************************************************* Convert a secdesc_buf into a byte stream ********************************************************************/ NTSTATUS marshall_sec_desc_buf(TALLOC_CTX *mem_ctx, - struct sec_desc_buf *secdesc_buf, + const struct sec_desc_buf *secdesc_buf, uint8_t **data, size_t *len); /******************************************************************* diff --git a/source3/client/client.c b/source3/client/client.c index 142eea2..e6fffcb 100644 --- a/source3/client/client.c +++ b/source3/client/client.c @@ -586,12 +586,12 @@ static NTSTATUS display_finfo(struct cli_state *cli_state, struct file_info *fin afname, nt_errstr(status))); } else { struct security_descriptor *sd = NULL; - sd = cli_query_secdesc(cli_state, fnum, ctx); - if (!sd) { - status = cli_nt_error(cli_state); + status = cli_query_secdesc(cli_state, fnum, + ctx, &sd); + if (!NT_STATUS_IS_OK(status)) { DEBUG( 0, ("display_finfo() failed to " - "get security descriptor: %s", - nt_errstr(status))); + "get security descriptor: %s", + nt_errstr(status))); } else { display_sec_desc(sd); } diff --git a/source3/client/clitar.c b/source3/client/clitar.c index 8882461..cc642c3 100644 --- a/source3/client/clitar.c +++ b/source3/client/clitar.c @@ -616,7 +616,7 @@ static NTSTATUS do_atar(const char *rname_in, char *lname, bool shallitime=True; char *data = NULL; int read_size = 65520; - int datalen=0; + size_t datalen=0; char *rname = NULL; TALLOC_CTX *ctx = talloc_stackframe(); NTSTATUS status = NT_STATUS_OK; @@ -693,10 +693,9 @@ static NTSTATUS do_atar(const char *rname_in, char *lname, DEBUG(3,("nread=%.0f\n",(double)nread)); - datalen = cli_read_old(cli, fnum, data, nread, read_size); - - if (datalen == -1) { - status = cli_nt_error(cli); + status = cli_read(cli, fnum, data, nread, + read_size, &datalen); + if (!NT_STATUS_IS_OK(status)) { DEBUG(0,("Error reading file %s : %s\n", rname, nt_errstr(status))); break; diff --git a/source3/libgpo/gpo_filesync.c b/source3/libgpo/gpo_filesync.c index cdcdcfb..ead9261 100644 --- a/source3/libgpo/gpo_filesync.c +++ b/source3/libgpo/gpo_filesync.c @@ -66,10 +66,14 @@ NTSTATUS gpo_copy_file(TALLOC_CTX *mem_ctx, } while (1) { + size_t n = 0; - int n = cli_read_old(cli, fnum, data, nread, read_size); + result = cli_read(cli, fnum, data, nread, read_size, &n); + if (!NT_STATUS_IS_OK(result)) { + goto out; + } - if (n <= 0) + if (n == 0) break; if (write(fd, data, n) != n) { diff --git a/source3/libsmb/clireadwrite.c b/source3/libsmb/clireadwrite.c index 5406007..413668d 100644 --- a/source3/libsmb/clireadwrite.c +++ b/source3/libsmb/clireadwrite.c @@ -691,20 +691,6 @@ static NTSTATUS cli_read_sink(char *buf, size_t n, void *priv) return NT_STATUS_OK; } -ssize_t cli_read_old(struct cli_state *cli, uint16_t fnum, char *buf, - off_t offset, size_t size) -{ - NTSTATUS status; - SMB_OFF_T ret; - - status = cli_pull(cli, fnum, offset, size, size, - cli_read_sink, &buf, &ret); - if (!NT_STATUS_IS_OK(status)) { - return -1; - } - return ret; -} - NTSTATUS cli_read(struct cli_state *cli, uint16_t fnum, char *buf, off_t offset, size_t size, size_t *nread) diff --git a/source3/libsmb/clisecdesc.c b/source3/libsmb/clisecdesc.c index d703b1f..70596d6 100644 --- a/source3/libsmb/clisecdesc.c +++ b/source3/libsmb/clisecdesc.c @@ -21,17 +21,14 @@ #include "libsmb/libsmb.h" #include "../libcli/security/secdesc.h" -/**************************************************************************** - query the security descriptor for a open file - ****************************************************************************/ -struct security_descriptor *cli_query_secdesc(struct cli_state *cli, uint16_t fnum, - TALLOC_CTX *mem_ctx) +NTSTATUS cli_query_secdesc(struct cli_state *cli, uint16_t fnum, + TALLOC_CTX *mem_ctx, struct security_descriptor **sd) { uint8_t param[8]; uint8_t *rdata=NULL; uint32_t rdata_count=0; - struct security_descriptor *psd = NULL; NTSTATUS status; + struct security_descriptor *lsd; SIVAL(param, 0, fnum); SIVAL(param, 4, 0x7); @@ -54,26 +51,31 @@ struct security_descriptor *cli_query_secdesc(struct cli_state *cli, uint16_t fn } status = unmarshall_sec_desc(mem_ctx, (uint8 *)rdata, rdata_count, - &psd); - + &lsd); if (!NT_STATUS_IS_OK(status)) { DEBUG(10, ("unmarshall_sec_desc failed: %s\n", nt_errstr(status))); goto cleanup; } + if (sd != NULL) { + *sd = lsd; + } else { + TALLOC_FREE(lsd); + } + cleanup: TALLOC_FREE(rdata); - return psd; + return status; } /**************************************************************************** set the security descriptor for a open file ****************************************************************************/ NTSTATUS cli_set_secdesc(struct cli_state *cli, uint16_t fnum, - struct security_descriptor *sd) + const struct security_descriptor *sd) { uint8_t param[8]; uint32 sec_info = 0; diff --git a/source3/libsmb/libsmb_file.c b/source3/libsmb/libsmb_file.c index ebf4925..914b614 100644 --- a/source3/libsmb/libsmb_file.c +++ b/source3/libsmb/libsmb_file.c @@ -225,7 +225,7 @@ SMBC_read_ctx(SMBCCTX *context, void *buf, size_t count) { - int ret; + size_t ret; char *server = NULL, *share = NULL, *user = NULL, *password = NULL; char *path = NULL; char *targetpath = NULL; @@ -296,9 +296,9 @@ SMBC_read_ctx(SMBCCTX *context, } /*d_printf(">>>fstat: resolved path as %s\n", targetpath);*/ - ret = cli_read_old(targetcli, file->cli_fd, (char *)buf, offset, count); - - if (ret < 0) { + status = cli_read(targetcli, file->cli_fd, (char *)buf, offset, + count, &ret); + if (!NT_STATUS_IS_OK(status)) { errno = SMBC_errno(context, targetcli); TALLOC_FREE(frame); return -1; @@ -306,7 +306,7 @@ SMBC_read_ctx(SMBCCTX *context, file->offset += ret; - DEBUG(4, (" --> %d\n", ret)); + DEBUG(4, (" --> %ld\n", (unsigned long)ret)); TALLOC_FREE(frame); return ret; /* Success, ret bytes of data ... */ diff --git a/source3/libsmb/libsmb_xattr.c b/source3/libsmb/libsmb_xattr.c index 00f9412..5ed3841 100644 --- a/source3/libsmb/libsmb_xattr.c +++ b/source3/libsmb/libsmb_xattr.c @@ -911,14 +911,14 @@ cacl_get(SMBCCTX *context, return -1; } - sd = cli_query_secdesc(targetcli, fnum, ctx); - - if (!sd) { - DEBUG(5, - ("cacl_get Failed to query old descriptor\n")); - errno = 0; - return -1; - } + status = cli_query_secdesc(targetcli, fnum, ctx, &sd); + if (!NT_STATUS_IS_OK(status)) { + DEBUG(5,("cacl_get Failed to query old descriptor " + "of %s: %s\n", + targetpath, nt_errstr(status))); + errno = 0; + return -1; + } cli_close(targetcli, fnum); @@ -1570,11 +1570,11 @@ cacl_set(SMBCCTX *context, return -1; } - old = cli_query_secdesc(targetcli, fnum, ctx); - - if (!old) { - DEBUG(5, ("cacl_set Failed to query old descriptor\n")); - errno = 0; + status = cli_query_secdesc(targetcli, fnum, ctx, &old); + if (!NT_STATUS_IS_OK(status)) { + DEBUG(5,("cacl_set Failed to query old descriptor of %s: %s\n", + targetpath, nt_errstr(status))); + errno = 0; return -1; } diff --git a/source3/libsmb/proto.h b/source3/libsmb/proto.h index 7924091..1d2da7f 100644 --- a/source3/libsmb/proto.h +++ b/source3/libsmb/proto.h @@ -746,8 +746,6 @@ NTSTATUS cli_pull(struct cli_state *cli, uint16_t fnum, off_t start_offset, SMB_OFF_T size, size_t window_size, NTSTATUS (*sink)(char *buf, size_t n, void *priv), void *priv, SMB_OFF_T *received); -ssize_t cli_read_old(struct cli_state *cli, uint16_t fnum, char *buf, - off_t offset, size_t size); NTSTATUS cli_read(struct cli_state *cli, uint16_t fnum, char *buf, off_t offset, size_t size, size_t *nread); @@ -787,10 +785,10 @@ NTSTATUS cli_push(struct cli_state *cli, uint16_t fnum, uint16_t mode, /* The following definitions come from libsmb/clisecdesc.c */ -struct security_descriptor *cli_query_secdesc(struct cli_state *cli, uint16_t fnum, - TALLOC_CTX *mem_ctx); +NTSTATUS cli_query_secdesc(struct cli_state *cli, uint16_t fnum, + TALLOC_CTX *mem_ctx, struct security_descriptor **sd); NTSTATUS cli_set_secdesc(struct cli_state *cli, uint16_t fnum, - struct security_descriptor *sd); + const struct security_descriptor *sd); /* The following definitions come from libsmb/clistr.c */ diff --git a/source3/torture/denytest.c b/source3/torture/denytest.c index 9fea7c5..8462894 100644 --- a/source3/torture/denytest.c +++ b/source3/torture/denytest.c @@ -1412,8 +1412,9 @@ bool torture_denytest1(int dummy) uint16_t fnum1, fnum2; int i; bool correct = True; - NTSTATUS ret1, ret2; + NTSTATUS ret1, ret2, status; const char *fnames[2] = {"\\denytest1.dat", "\\denytest1.exe"}; + size_t nread; if (!torture_open_connection(&cli1, 0)) { return False; @@ -1451,7 +1452,10 @@ bool torture_denytest1(int dummy) } else { char x = 1; res = A_0; - if (cli_read_old(cli1, fnum2, (char *)&x, 0, 1) == 1) { + + status = cli_read(cli1, fnum2, (char *)&x, 0, 1, + &nread); + if (NT_STATUS_IS_OK(status) && nread == 1) { res += A_R; } if (NT_STATUS_IS_OK(cli_writeall(cli1, fnum2, 0, @@ -1506,8 +1510,9 @@ bool torture_denytest2(int dummy) uint16_t fnum1, fnum2; int i; bool correct = True; - NTSTATUS ret1, ret2; + NTSTATUS ret1, ret2, status; const char *fnames[2] = {"\\denytest2.dat", "\\denytest2.exe"}; + size_t nread; if (!torture_open_connection(&cli1, 0) || !torture_open_connection(&cli2, 1)) { return False; @@ -1543,9 +1548,12 @@ bool torture_denytest2(int dummy) } else { char x = 1; res = A_0; - if (cli_read_old(cli2, fnum2, (char *)&x, 0, 1) == 1) { - res += A_R; - } + + status = cli_read(cli2, fnum2, (char *)&x, 0, 1, + &nread); + if (NT_STATUS_IS_OK(status) && nread == 1) { + res += A_R; + } if (NT_STATUS_IS_OK(cli_writeall(cli2, fnum2, 0, (uint8_t *)&x, 0, 1, NULL))) { diff --git a/source3/torture/nbio.c b/source3/torture/nbio.c index e6caf74..4cf4cc7 100644 --- a/source3/torture/nbio.c +++ b/source3/torture/nbio.c @@ -212,12 +212,23 @@ void nb_writex(int handle, int offset, int size, int ret_size) void nb_readx(int handle, int offset, int size, int ret_size) { - int i, ret; + int i; + NTSTATUS status; + size_t nread; i = find_handle(handle); - if ((ret=cli_read_old(c, ftable[i].fd, buf, offset, size)) != ret_size) { - printf("(%d) ERROR: read failed on handle %d ofs=%d size=%d res=%d fd %d errno %d (%s)\n", - line_count, handle, offset, size, ret, ftable[i].fd, errno, strerror(errno)); + status = cli_read(c, ftable[i].fd, buf, offset, size, &nread); + if (!NT_STATUS_IS_OK(status)) { + printf("(%d) ERROR: read failed on handle %d ofs=%d size=%d " + "fd %d nterror %s\n", + line_count, handle, offset, size, + ftable[i].fd, nt_errstr(status)); + exit(1); + } else if (nread != ret_size) { + printf("(%d) ERROR: read failed on handle %d ofs=%d size=%d " + "nread=%lu ret_size=%d fd %d\n", + line_count, handle, offset, size, (unsigned long)nread, + ret_size, ftable[i].fd); exit(1); } children[nbio_id].bytes_in += ret_size; diff --git a/source3/torture/test_nttrans_create.c b/source3/torture/test_nttrans_create.c index 9869f02..f6444e8 100644 --- a/source3/torture/test_nttrans_create.c +++ b/source3/torture/test_nttrans_create.c @@ -78,7 +78,7 @@ bool run_nttrans_create(int dummy) goto fail; } - cli_query_secdesc(cli, fnum, talloc_tos()); + cli_query_secdesc(cli, fnum, talloc_tos(), NULL); status2 = cli_ntcreate(cli, fname, 0, WRITE_DAC_ACCESS, FILE_ATTRIBUTE_NORMAL, diff --git a/source3/torture/torture.c b/source3/torture/torture.c index c2bc6d2..36d263d 100644 --- a/source3/torture/torture.c +++ b/source3/torture/torture.c @@ -2301,6 +2301,7 @@ static bool run_locktest7(int dummy) uint16_t fnum1; char buf[200]; bool correct = False; + size_t nread; NTSTATUS status; if (!torture_open_connection(&cli1, 0)) { @@ -2328,14 +2329,21 @@ static bool run_locktest7(int dummy) status = cli_lock32(cli1, fnum1, 130, 4, 0, READ_LOCK); if (!NT_STATUS_IS_OK(status)) { - printf("Unable to apply read lock on range 130:4, error was %s\n", nt_errstr(status)); + printf("Unable to apply read lock on range 130:4, " + "error was %s\n", nt_errstr(status)); goto fail; } else { printf("pid1 successfully locked range 130:4 for READ\n"); } - if (cli_read_old(cli1, fnum1, buf, 130, 4) != 4) { - printf("pid1 unable to read the range 130:4, error was %s\n", cli_errstr(cli1)); + status = cli_read(cli1, fnum1, buf, 130, 4, &nread); + if (!NT_STATUS_IS_OK(status)) { + printf("pid1 unable to read the range 130:4, error was %s\n", + nt_errstr(status)); + goto fail; + } else if (nread != 4) { + printf("pid1 unable to read the range 130:4, " + "recv %ld req %d\n", (unsigned long)nread, 4); goto fail; } else { printf("pid1 successfully read the range 130:4\n"); @@ -2356,8 +2364,15 @@ static bool run_locktest7(int dummy) cli_setpid(cli1, 2); - if (cli_read_old(cli1, fnum1, buf, 130, 4) != 4) { - printf("pid2 unable to read the range 130:4, error was %s\n", cli_errstr(cli1)); + status = cli_read(cli1, fnum1, buf, 130, 4, &nread); + if (!NT_STATUS_IS_OK(status)) { + printf("pid2 unable to read the range 130:4, error was %s\n", + nt_errstr(status)); + goto fail; + } else if (nread != 4) { + printf("pid2 unable to read the range 130:4, " + "recv %ld req %d\n", (unsigned long)nread, 4); + goto fail; } else { printf("pid2 successfully read the range 130:4\n"); } @@ -2386,8 +2401,14 @@ static bool run_locktest7(int dummy) printf("pid1 successfully locked range 130:4 for WRITE\n"); } - if (cli_read_old(cli1, fnum1, buf, 130, 4) != 4) { - printf("pid1 unable to read the range 130:4, error was %s\n", cli_errstr(cli1)); + status = cli_read(cli1, fnum1, buf, 130, 4, &nread); + if (!NT_STATUS_IS_OK(status)) { + printf("pid1 unable to read the range 130:4, error was %s\n", + nt_errstr(status)); + goto fail; + } else if (nread != 4) { + printf("pid1 unable to read the range 130:4, " + "recv %ld req %d\n", (unsigned long)nread, 4); goto fail; } else { printf("pid1 successfully read the range 130:4\n"); @@ -2404,14 +2425,17 @@ static bool run_locktest7(int dummy) cli_setpid(cli1, 2); - if (cli_read_old(cli1, fnum1, buf, 130, 4) != 4) { - printf("pid2 unable to read the range 130:4, error was %s\n", cli_errstr(cli1)); - if (NT_STATUS_V(cli_nt_error(cli1)) != NT_STATUS_V(NT_STATUS_FILE_LOCK_CONFLICT)) { + status = cli_read(cli1, fnum1, buf, 130, 4, &nread); + if (!NT_STATUS_IS_OK(status)) { + printf("pid2 unable to read the range 130:4, error was " + "%s\n", nt_errstr(status)); + if (!NT_STATUS_EQUAL(status, NT_STATUS_FILE_LOCK_CONFLICT)) { printf("Incorrect error (should be NT_STATUS_FILE_LOCK_CONFLICT)\n"); goto fail; } } else { - printf("pid2 successfully read the range 130:4 (should be denied)\n"); + printf("pid2 successfully read the range 130:4 (should be denied) recv %ld\n", + (unsigned long)nread); goto fail; } @@ -2760,10 +2784,9 @@ static bool run_fdpasstest(int dummy) cli_state_set_tid(cli2, cli_state_get_tid(cli1)); -- Samba Shared Repository