diff options
author | Volker Lendecke <vl@samba.org> | 2020-09-28 14:21:24 +0200 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2020-09-30 15:58:39 +0000 |
commit | 71bc4d4b8d94458ac2e40d659f06110d434fd5c9 (patch) | |
tree | 57de3dd590ba9b3112fd90bb2c4a167fc1de6fac /source3/client | |
parent | 8fa451d2b052223a11b24ffc2a956b80d03aaa7c (diff) | |
download | samba-71bc4d4b8d94458ac2e40d659f06110d434fd5c9.tar.gz |
smbclient: Slightly simplify do_mget()
Put the prompt query into a separate if-statement, move the "quest"
variable closer to its use
Bug: https://bugzilla.samba.org/show_bug.cgi?id=14517
Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
Diffstat (limited to 'source3/client')
-rw-r--r-- | source3/client/client.c | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/source3/client/client.c b/source3/client/client.c index 6e1d68996d1..d9f4384ef66 100644 --- a/source3/client/client.c +++ b/source3/client/client.c @@ -1202,7 +1202,6 @@ static NTSTATUS do_mget(struct cli_state *cli_state, struct file_info *finfo, TALLOC_CTX *ctx = talloc_tos(); NTSTATUS status = NT_STATUS_OK; char *rname = NULL; - char *quest = NULL; char *saved_curdir = NULL; char *mget_mask = NULL; char *new_cd = NULL; @@ -1214,23 +1213,24 @@ static NTSTATUS do_mget(struct cli_state *cli_state, struct file_info *finfo, if (strequal(finfo->name,".") || strequal(finfo->name,"..")) return NT_STATUS_OK; - if (finfo->attr & FILE_ATTRIBUTE_DIRECTORY) { - if (asprintf(&quest, - "Get directory %s? ",finfo->name) < 0) { - return NT_STATUS_NO_MEMORY; - } - } else { - if (asprintf(&quest, - "Get file %s? ",finfo->name) < 0) { + if (prompt) { + const char *object = (finfo->attr & FILE_ATTRIBUTE_DIRECTORY) ? + "directory" : "file"; + char *quest = NULL; + bool ok; + + quest = talloc_asprintf( + ctx, "Get %s %s? ", object, finfo->name); + if (quest == NULL) { return NT_STATUS_NO_MEMORY; } - } - if (prompt && !yesno(quest)) { - SAFE_FREE(quest); - return NT_STATUS_OK; + ok = yesno(quest); + TALLOC_FREE(quest); + if (!ok) { + return NT_STATUS_OK; + } } - SAFE_FREE(quest); if (!(finfo->attr & FILE_ATTRIBUTE_DIRECTORY)) { rname = talloc_asprintf(ctx, |