The branch, master has been updated via 7d96a45 s3: Remove cli_errstr from cmd_posix_open via c33a5a6 s3: Fix error logic in posix_open via c1fdec7 s3: Remove a few uses of cli_errstr via 26782fb s3: make cli_resolve_path return NTSTATUS from c019302 ccan/tally: don't use SIZE_MAX.
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master - Log ----------------------------------------------------------------- commit 7d96a4594bcbaa75d82779d70e2dec658b9508d6 Author: Volker Lendecke <v...@samba.org> Date: Tue Jul 5 19:55:25 2011 +0200 s3: Remove cli_errstr from cmd_posix_open Autobuild-User: Volker Lendecke <vlen...@samba.org> Autobuild-Date: Wed Jul 6 09:45:11 CEST 2011 on sn-devel-104 commit c33a5a659c82eda365e4dacfe665ce401e92f476 Author: Volker Lendecke <v...@samba.org> Date: Tue Jul 5 19:51:09 2011 +0200 s3: Fix error logic in posix_open commit c1fdec7efce159bcc9aa146d2ce3485dccc6476a Author: Volker Lendecke <v...@samba.org> Date: Tue Jul 5 19:42:46 2011 +0200 s3: Remove a few uses of cli_errstr commit 26782fbbf3a7885746aa17be259607dd2d418347 Author: Volker Lendecke <v...@samba.org> Date: Sun Jul 3 20:53:55 2011 +0200 s3: make cli_resolve_path return NTSTATUS This looks larger than it is. No parameters needed changing. ----------------------------------------------------------------------- Summary of changes: source3/client/client.c | 212 ++++++++++++++++++++++++++++------------- source3/libsmb/clidfs.c | 78 ++++++++------- source3/libsmb/libsmb_dir.c | 51 +++++----- source3/libsmb/libsmb_file.c | 54 +++++++---- source3/libsmb/libsmb_stat.c | 8 +- source3/libsmb/libsmb_xattr.c | 13 ++- source3/libsmb/proto.h | 14 ++-- source3/utils/net_rpc.c | 6 +- 8 files changed, 269 insertions(+), 167 deletions(-) Changeset truncated at 500 lines: diff --git a/source3/client/client.c b/source3/client/client.c index bc653d5..e2efad8 100644 --- a/source3/client/client.c +++ b/source3/client/client.c @@ -311,8 +311,11 @@ static int do_dskattr(void) TALLOC_CTX *ctx = talloc_tos(); NTSTATUS status; - if ( !cli_resolve_path(ctx, "", auth_info, cli, client_get_cur_dir(), &targetcli, &targetpath)) { - d_printf("Error in dskattr: %s\n", cli_errstr(cli)); + status = cli_resolve_path(ctx, "", auth_info, cli, + client_get_cur_dir(), &targetcli, + &targetpath); + if (!NT_STATUS_IS_OK(status)) { + d_printf("Error in dskattr: %s\n", nt_errstr(status)); return 1; } @@ -365,6 +368,7 @@ static int do_cd(const char *new_dir) uint32 attributes; int ret = 1; TALLOC_CTX *ctx = talloc_stackframe(); + NTSTATUS status; newdir = talloc_strdup(ctx, new_dir); if (!newdir) { @@ -406,8 +410,10 @@ static int do_cd(const char *new_dir) new_cd = clean_name(ctx, new_cd); client_set_cur_dir(new_cd); - if ( !cli_resolve_path(ctx, "", auth_info, cli, new_cd, &targetcli, &targetpath)) { - d_printf("cd %s: %s\n", new_cd, cli_errstr(cli)); + status = cli_resolve_path(ctx, "", auth_info, cli, new_cd, + &targetcli, &targetpath); + if (!NT_STATUS_IS_OK(status)) { + d_printf("cd %s: %s\n", new_cd, nt_errstr(status)); client_set_cur_dir(saved_dir); goto out; } @@ -421,7 +427,6 @@ static int do_cd(const char *new_dir) Except Win9x doesn't support the qpathinfo_basic() call..... */ if (targetcli->protocol > PROTOCOL_LANMAN2 && !targetcli->win95) { - NTSTATUS status; status = cli_qpathinfo_basic(targetcli, targetpath, &sbuf, &attributes); @@ -437,7 +442,6 @@ static int do_cd(const char *new_dir) goto out; } } else { - NTSTATUS status; targetpath = talloc_asprintf(ctx, "%s%s", @@ -858,8 +862,12 @@ NTSTATUS do_list(const char *mask, /* check for dfs */ - if ( !cli_resolve_path(ctx, "", auth_info, cli, head, &targetcli, &targetpath ) ) { - d_printf("do_list: [%s] %s\n", head, cli_errstr(cli)); + status = cli_resolve_path(ctx, "", auth_info, cli, + head, &targetcli, + &targetpath); + if (!NT_STATUS_IS_OK(status)) { + d_printf("do_list: [%s] %s\n", head, + nt_errstr(status)); remove_do_list_queue_head(); continue; } @@ -897,8 +905,9 @@ NTSTATUS do_list(const char *mask, } } else { /* check for dfs */ - if (cli_resolve_path(ctx, "", auth_info, cli, mask, &targetcli, &targetpath)) { - + status = cli_resolve_path(ctx, "", auth_info, cli, mask, + &targetcli, &targetpath); + if (NT_STATUS_IS_OK(status)) { status = cli_list(targetcli, targetpath, attribute, do_list_helper, targetcli); if (!NT_STATUS_IS_OK(status)) { @@ -1078,8 +1087,10 @@ static int do_get(const char *rname, const char *lname_in, bool reget) strlower_m(lname); } - if (!cli_resolve_path(ctx, "", auth_info, cli, rname, &targetcli, &targetname ) ) { - d_printf("Failed to open %s: %s\n", rname, cli_errstr(cli)); + status = cli_resolve_path(ctx, "", auth_info, cli, rname, &targetcli, + &targetname); + if (!NT_STATUS_IS_OK(status)) { + d_printf("Failed to open %s: %s\n", rname, nt_errstr(status)); return 1; } @@ -1460,8 +1471,10 @@ static bool do_mkdir(const char *name) char *targetname = NULL; NTSTATUS status; - if (!cli_resolve_path(ctx, "", auth_info, cli, name, &targetcli, &targetname)) { - d_printf("mkdir %s: %s\n", name, cli_errstr(cli)); + status = cli_resolve_path(ctx, "", auth_info, cli, name, &targetcli, + &targetname); + if (!NT_STATUS_IS_OK(status)) { + d_printf("mkdir %s: %s\n", name, nt_errstr(status)); return false; } @@ -1516,6 +1529,7 @@ static int cmd_mkdir(void) TALLOC_CTX *ctx = talloc_tos(); char *mask = NULL; char *buf = NULL; + NTSTATUS status; mask = talloc_strdup(ctx, client_get_cur_dir()); if (!mask) { @@ -1546,7 +1560,9 @@ static int cmd_mkdir(void) return 1; } - if (!cli_resolve_path(ctx, "", auth_info, cli, mask, &targetcli, &targetname)) { + status = cli_resolve_path(ctx, "", auth_info, cli, mask, + &targetcli, &targetname); + if (!NT_STATUS_IS_OK(status)) { return 1; } @@ -1829,8 +1845,10 @@ static int do_put(const char *rname, const char *lname, bool reput) struct push_state state; NTSTATUS status; - if (!cli_resolve_path(ctx, "", auth_info, cli, rname, &targetcli, &targetname)) { - d_printf("Failed to open %s: %s\n", rname, cli_errstr(cli)); + status = cli_resolve_path(ctx, "", auth_info, cli, rname, + &targetcli, &targetname); + if (!NT_STATUS_IS_OK(status)) { + d_printf("Failed to open %s: %s\n", rname, nt_errstr(status)); return 1; } @@ -2407,8 +2425,10 @@ static int cmd_wdel(void) return 1; } - if (!cli_resolve_path(ctx, "", auth_info, cli, mask, &targetcli, &targetname)) { - d_printf("cmd_wdel %s: %s\n", mask, cli_errstr(cli)); + status = cli_resolve_path(ctx, "", auth_info, cli, mask, &targetcli, + &targetname); + if (!NT_STATUS_IS_OK(status)) { + d_printf("cmd_wdel %s: %s\n", mask, nt_errstr(status)); return 1; } @@ -2431,6 +2451,7 @@ static int cmd_open(void) char *targetname = NULL; struct cli_state *targetcli; uint16_t fnum = (uint16_t)-1; + NTSTATUS status; if (!next_token_talloc(ctx, &cmd_ptr,&buf,NULL)) { d_printf("open <filename>\n"); @@ -2444,8 +2465,10 @@ static int cmd_open(void) return 1; } - if (!cli_resolve_path(ctx, "", auth_info, cli, mask, &targetcli, &targetname)) { - d_printf("open %s: %s\n", mask, cli_errstr(cli)); + status = cli_resolve_path(ctx, "", auth_info, cli, mask, &targetcli, + &targetname); + if (!NT_STATUS_IS_OK(status)) { + d_printf("open %s: %s\n", mask, nt_errstr(status)); return 1; } @@ -2520,6 +2543,7 @@ static int cmd_posix_open(void) struct cli_state *targetcli; mode_t mode; uint16_t fnum; + NTSTATUS status; if (!next_token_talloc(ctx, &cmd_ptr,&buf,NULL)) { d_printf("posix_open <filename> 0<mode>\n"); @@ -2539,19 +2563,28 @@ static int cmd_posix_open(void) } mode = (mode_t)strtol(buf, (char **)NULL, 8); - if (!cli_resolve_path(ctx, "", auth_info, cli, mask, &targetcli, &targetname)) { - d_printf("posix_open %s: %s\n", mask, cli_errstr(cli)); + status = cli_resolve_path(ctx, "", auth_info, cli, mask, &targetcli, + &targetname); + if (!NT_STATUS_IS_OK(status)) { + d_printf("posix_open %s: %s\n", mask, nt_errstr(status)); return 1; } - if (!NT_STATUS_IS_OK(cli_posix_open(targetcli, targetname, O_CREAT|O_RDWR, mode, &fnum))) { - if (!NT_STATUS_IS_OK(cli_posix_open(targetcli, targetname, O_CREAT|O_RDONLY, mode, &fnum))) { - d_printf("posix_open file %s: for read/write fnum %d\n", targetname, fnum); + status = cli_posix_open(targetcli, targetname, O_CREAT|O_RDWR, mode, + &fnum); + if (!NT_STATUS_IS_OK(status)) { + status = cli_posix_open(targetcli, targetname, + O_CREAT|O_RDONLY, mode, &fnum); + if (!NT_STATUS_IS_OK(status)) { + d_printf("Failed to open file %s. %s\n", targetname, + nt_errstr(status)); } else { - d_printf("Failed to open file %s. %s\n", targetname, cli_errstr(cli)); + d_printf("posix_open file %s: for readonly fnum %d\n", + targetname, fnum); } } else { - d_printf("posix_open file %s: for read/write fnum %d\n", targetname, fnum); + d_printf("posix_open file %s: for read/write fnum %d\n", + targetname, fnum); } return 0; @@ -2565,6 +2598,7 @@ static int cmd_posix_mkdir(void) char *targetname = NULL; struct cli_state *targetcli; mode_t mode; + NTSTATUS status; if (!next_token_talloc(ctx, &cmd_ptr,&buf,NULL)) { d_printf("posix_mkdir <filename> 0<mode>\n"); @@ -2584,8 +2618,10 @@ static int cmd_posix_mkdir(void) } mode = (mode_t)strtol(buf, (char **)NULL, 8); - if (!cli_resolve_path(ctx, "", auth_info, cli, mask, &targetcli, &targetname)) { - d_printf("posix_mkdir %s: %s\n", mask, cli_errstr(cli)); + status = cli_resolve_path(ctx, "", auth_info, cli, mask, &targetcli, + &targetname); + if (!NT_STATUS_IS_OK(status)) { + d_printf("posix_mkdir %s: %s\n", mask, nt_errstr(status)); return 1; } @@ -2604,6 +2640,7 @@ static int cmd_posix_unlink(void) char *buf = NULL; char *targetname = NULL; struct cli_state *targetcli; + NTSTATUS status; if (!next_token_talloc(ctx, &cmd_ptr,&buf,NULL)) { d_printf("posix_unlink <filename>\n"); @@ -2617,8 +2654,10 @@ static int cmd_posix_unlink(void) return 1; } - if (!cli_resolve_path(ctx, "", auth_info, cli, mask, &targetcli, &targetname)) { - d_printf("posix_unlink %s: %s\n", mask, cli_errstr(cli)); + status = cli_resolve_path(ctx, "", auth_info, cli, mask, &targetcli, + &targetname); + if (!NT_STATUS_IS_OK(status)) { + d_printf("posix_unlink %s: %s\n", mask, nt_errstr(status)); return 1; } @@ -2638,6 +2677,7 @@ static int cmd_posix_rmdir(void) char *buf = NULL; char *targetname = NULL; struct cli_state *targetcli; + NTSTATUS status; if (!next_token_talloc(ctx, &cmd_ptr,&buf,NULL)) { d_printf("posix_rmdir <filename>\n"); @@ -2651,8 +2691,10 @@ static int cmd_posix_rmdir(void) return 1; } - if (!cli_resolve_path(ctx, "", auth_info, cli, mask, &targetcli, &targetname)) { - d_printf("posix_rmdir %s: %s\n", mask, cli_errstr(cli)); + status = cli_resolve_path(ctx, "", auth_info, cli, mask, &targetcli, + &targetname); + if (!NT_STATUS_IS_OK(status)) { + d_printf("posix_rmdir %s: %s\n", mask, nt_errstr(status)); return 1; } @@ -2885,6 +2927,7 @@ static int cmd_rmdir(void) char *buf = NULL; char *targetname = NULL; struct cli_state *targetcli; + NTSTATUS status; if (!next_token_talloc(ctx, &cmd_ptr,&buf,NULL)) { d_printf("rmdir <dirname>\n"); @@ -2898,8 +2941,10 @@ static int cmd_rmdir(void) return 1; } - if (!cli_resolve_path(ctx, "", auth_info, cli, mask, &targetcli, &targetname)) { - d_printf("rmdir %s: %s\n", mask, cli_errstr(cli)); + status = cli_resolve_path(ctx, "", auth_info, cli, mask, &targetcli, + &targetname); + if (!NT_STATUS_IS_OK(status)) { + d_printf("rmdir %s: %s\n", mask, nt_errstr(status)); return 1; } @@ -2924,6 +2969,7 @@ static int cmd_link(void) char *buf2 = NULL; char *targetname = NULL; struct cli_state *targetcli; + NTSTATUS status; if (!next_token_talloc(ctx, &cmd_ptr,&buf,NULL) || !next_token_talloc(ctx, &cmd_ptr,&buf2,NULL)) { @@ -2945,8 +2991,10 @@ static int cmd_link(void) return 1; } - if (!cli_resolve_path(ctx, "", auth_info, cli, oldname, &targetcli, &targetname)) { - d_printf("link %s: %s\n", oldname, cli_errstr(cli)); + status = cli_resolve_path(ctx, "", auth_info, cli, oldname, &targetcli, + &targetname); + if (!NT_STATUS_IS_OK(status)) { + d_printf("link %s: %s\n", oldname, nt_errstr(status)); return 1; } @@ -2974,6 +3022,7 @@ static int cmd_readlink(void) char *targetname = NULL; char linkname[PATH_MAX+1]; struct cli_state *targetcli; + NTSTATUS status; if (!next_token_talloc(ctx, &cmd_ptr,&buf,NULL)) { d_printf("readlink <name>\n"); @@ -2987,8 +3036,10 @@ static int cmd_readlink(void) return 1; } - if (!cli_resolve_path(ctx, "", auth_info, cli, name, &targetcli, &targetname)) { - d_printf("readlink %s: %s\n", name, cli_errstr(cli)); + status = cli_resolve_path(ctx, "", auth_info, cli, name, &targetcli, + &targetname); + if (!NT_STATUS_IS_OK(status)) { + d_printf("readlink %s: %s\n", name, nt_errstr(status)); return 1; } @@ -3039,9 +3090,10 @@ static int cmd_symlink(void) return 1; } /* New name must be present in share namespace. */ - if (!cli_resolve_path(ctx, "", auth_info, cli, newname, - &newcli, &newname)) { - d_printf("link %s: %s\n", oldname, cli_errstr(cli)); + status = cli_resolve_path(ctx, "", auth_info, cli, newname, + &newcli, &newname); + if (!NT_STATUS_IS_OK(status)) { + d_printf("link %s: %s\n", oldname, nt_errstr(status)); return 1; } status = cli_posix_symlink(newcli, oldname, newname); @@ -3073,6 +3125,7 @@ static int cmd_chmod(void) char *targetname = NULL; struct cli_state *targetcli; mode_t mode; + NTSTATUS status; if (!next_token_talloc(ctx, &cmd_ptr,&buf,NULL) || !next_token_talloc(ctx, &cmd_ptr,&buf2,NULL)) { @@ -3089,8 +3142,10 @@ static int cmd_chmod(void) mode = (mode_t)strtol(buf, NULL, 8); - if (!cli_resolve_path(ctx, "", auth_info, cli, src, &targetcli, &targetname)) { - d_printf("chmod %s: %s\n", src, cli_errstr(cli)); + status = cli_resolve_path(ctx, "", auth_info, cli, src, &targetcli, + &targetname); + if (!NT_STATUS_IS_OK(status)) { + d_printf("chmod %s: %s\n", src, nt_errstr(status)); return 1; } @@ -3243,8 +3298,10 @@ static int cmd_getfacl(void) return 1; } - if (!cli_resolve_path(ctx, "", auth_info, cli, src, &targetcli, &targetname)) { - d_printf("stat %s: %s\n", src, cli_errstr(cli)); + status = cli_resolve_path(ctx, "", auth_info, cli, src, &targetcli, + &targetname); + if (!NT_STATUS_IS_OK(status)) { + d_printf("stat %s: %s\n", src, nt_errstr(status)); return 1; } @@ -3412,9 +3469,10 @@ static int cmd_geteas(void) return 1; } - if (!cli_resolve_path(ctx, "", auth_info, cli, src, &targetcli, - &targetname)) { - d_printf("stat %s: %s\n", src, cli_errstr(cli)); + status = cli_resolve_path(ctx, "", auth_info, cli, src, &targetcli, + &targetname); + if (!NT_STATUS_IS_OK(status)) { + d_printf("stat %s: %s\n", src, nt_errstr(status)); return 1; } @@ -3468,9 +3526,10 @@ static int cmd_setea(void) return 1; } - if (!cli_resolve_path(ctx, "", auth_info, cli, src, &targetcli, - &targetname)) { - d_printf("stat %s: %s\n", src, cli_errstr(cli)); + status = cli_resolve_path(ctx, "", auth_info, cli, src, &targetcli, + &targetname); + if (!NT_STATUS_IS_OK(status)) { + d_printf("stat %s: %s\n", src, nt_errstr(status)); return 1; } @@ -3499,6 +3558,7 @@ static int cmd_stat(void) SMB_STRUCT_STAT sbuf; struct tm *lt; time_t tmp_time; + NTSTATUS status; if (!next_token_talloc(ctx, &cmd_ptr,&name,NULL)) { d_printf("stat file\n"); @@ -3512,8 +3572,10 @@ static int cmd_stat(void) return 1; } - if (!cli_resolve_path(ctx, "", auth_info, cli, src, &targetcli, &targetname)) { - d_printf("stat %s: %s\n", src, cli_errstr(cli)); + status = cli_resolve_path(ctx, "", auth_info, cli, src, &targetcli, + &targetname); + if (!NT_STATUS_IS_OK(status)) { + d_printf("stat %s: %s\n", src, nt_errstr(status)); return 1; } @@ -3598,6 +3660,7 @@ static int cmd_chown(void) char *buf, *buf2, *buf3; struct cli_state *targetcli; char *targetname = NULL; + NTSTATUS status; if (!next_token_talloc(ctx, &cmd_ptr,&buf,NULL) || !next_token_talloc(ctx, &cmd_ptr,&buf2,NULL) || @@ -3616,8 +3679,10 @@ static int cmd_chown(void) if (!src) { return 1; } - if (!cli_resolve_path(ctx, "", auth_info, cli, src, &targetcli, &targetname) ) { - d_printf("chown %s: %s\n", src, cli_errstr(cli)); + status = cli_resolve_path(ctx, "", auth_info, cli, src, &targetcli, + &targetname); + if (!NT_STATUS_IS_OK(status)) { + d_printf("chown %s: %s\n", src, nt_errstr(status)); return 1; } @@ -3647,6 +3712,7 @@ static int cmd_rename(void) struct cli_state *targetcli; char *targetsrc; char *targetdest; + NTSTATUS status; if (!next_token_talloc(ctx, &cmd_ptr,&buf,NULL) || !next_token_talloc(ctx, &cmd_ptr,&buf2,NULL)) { @@ -3670,13 +3736,17 @@ static int cmd_rename(void) return 1; } - if (!cli_resolve_path(ctx, "", auth_info, cli, src, &targetcli, &targetsrc)) { - d_printf("rename %s: %s\n", src, cli_errstr(cli)); + status = cli_resolve_path(ctx, "", auth_info, cli, src, &targetcli, + &targetsrc); + if (!NT_STATUS_IS_OK(status)) { + d_printf("rename %s: %s\n", src, nt_errstr(status)); return 1; } - if (!cli_resolve_path(ctx, "", auth_info, cli, dest, &targetcli, &targetdest)) { - d_printf("rename %s: %s\n", dest, cli_errstr(cli)); + status = cli_resolve_path(ctx, "", auth_info, cli, dest, &targetcli, + &targetdest); + if (!NT_STATUS_IS_OK(status)) { + d_printf("rename %s: %s\n", dest, nt_errstr(status)); return 1; } @@ -3725,6 +3795,7 @@ static int cmd_hardlink(void) char *buf, *buf2; struct cli_state *targetcli; char *targetname; + NTSTATUS status; if (!next_token_talloc(ctx, &cmd_ptr,&buf,NULL) || !next_token_talloc(ctx, &cmd_ptr,&buf2,NULL)) { -- Samba Shared Repository