From 2d3956e0cb165a869e612cad995b2e7986807169 Mon Sep 17 00:00:00 2001 From: JacobBarthelmeh Date: Mon, 13 Nov 2023 15:59:55 -0800 Subject: [PATCH] do not require locking file with SFTP on Windows --- src/wolfsftp.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/wolfsftp.c b/src/wolfsftp.c index d50792fd..a2619596 100644 --- a/src/wolfsftp.c +++ b/src/wolfsftp.c @@ -2171,8 +2171,9 @@ int wolfSSH_SFTP_RecvOpen(WOLFSSH* ssh, int reqId, byte* data, word32 maxSz) } #endif - fileHandle = WS_CreateFileA(dir, desiredAccess, 0, creationDisp, - FILE_ATTRIBUTE_NORMAL, ssh->ctx->heap); + fileHandle = WS_CreateFileA(dir, desiredAccess, + (FILE_SHARE_DELETE | FILE_SHARE_READ | FILE_SHARE_WRITE), + creationDisp, FILE_ATTRIBUTE_NORMAL, ssh->ctx->heap); if (fileHandle == INVALID_HANDLE_VALUE) { WLOG(WS_LOG_SFTP, "Error opening file %s", dir); res = oer; @@ -8512,8 +8513,9 @@ int wolfSSH_SFTP_Get(WOLFSSH* ssh, char* from, if (state->gOfst > 0) desiredAccess |= FILE_APPEND_DATA; state->fileHandle = WS_CreateFileA(to, desiredAccess, - 0, CREATE_ALWAYS, - FILE_ATTRIBUTE_NORMAL, ssh->ctx->heap); + (FILE_SHARE_DELETE | FILE_SHARE_READ | + FILE_SHARE_WRITE), CREATE_ALWAYS, + FILE_ATTRIBUTE_NORMAL, ssh->ctx->heap); } if (resume) { WMEMSET(&state->offset, 0, sizeof(OVERLAPPED));