From 12945cb69a86690adbf12a3e89457de7fc1bba6c Mon Sep 17 00:00:00 2001 From: David Disseldorp Date: Mon, 4 Feb 2013 19:04:39 +0100 Subject: [PATCH] Fix bug 9633: recursive mget should continue on EPERM Regression introduced by 14ff2e8de9bd8d0064762234555260f5eea643fe. When downloading files recursively, smbclient halts if it encounters a folder to which it does not have permission to traverse. --- source3/client/client.c | 13 +++++++++++-- 1 files changed, 11 insertions(+), 2 deletions(-) diff --git a/source3/client/client.c b/source3/client/client.c index 6aed9d3..8038021 100644 --- a/source3/client/client.c +++ b/source3/client/client.c @@ -1321,8 +1321,17 @@ static NTSTATUS do_mget(struct cli_state *cli_state, struct file_info *finfo, return NT_STATUS_NO_MEMORY; } - status = do_list(mget_mask, FILE_ATTRIBUTE_SYSTEM | FILE_ATTRIBUTE_HIDDEN | FILE_ATTRIBUTE_DIRECTORY,do_mget,false, true); - if (!NT_STATUS_IS_OK(status)) { + status = do_list(mget_mask, + (FILE_ATTRIBUTE_SYSTEM + | FILE_ATTRIBUTE_HIDDEN + | FILE_ATTRIBUTE_DIRECTORY), + do_mget, false, true); + if (!NT_STATUS_IS_OK(status) + && !NT_STATUS_EQUAL(status, NT_STATUS_ACCESS_DENIED)) { + /* + * Ignore access denied errors to ensure all permitted files are + * pulled down. + */ return status; } -- 1.7.1