summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJay Satiro <raysatiro@yahoo.com>2019-11-01 18:02:59 -0400
committerJay Satiro <raysatiro@yahoo.com>2019-11-01 18:02:59 -0400
commit9c49824902834bb12e26e66f4a8db74f4b9ea217 (patch)
treef90c5ae05efb69e16913d7a0b915842922e64734
parentc2b01cce5ca4ddab04a6e1978be6281d30a55567 (diff)
downloadcurl-9c49824902834bb12e26e66f4a8db74f4b9ea217.tar.gz
schannel_verify: Fix concurrent openings of CA file
- Open the CA file using FILE_SHARE_READ mode so that others can read from it as well. Prior to this change our schannel code opened the CA file without sharing which meant concurrent openings (eg an attempt from another thread or process) would fail during the time it was open without sharing, which in curl's case would cause error: "schannel: failed to open CA file". Bug: https://curl.haxx.se/mail/lib-2019-10/0104.html Reported-by: Richard Alcock
-rw-r--r--lib/vtls/schannel_verify.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/vtls/schannel_verify.c b/lib/vtls/schannel_verify.c
index 5a09e969e..1bdf50a55 100644
--- a/lib/vtls/schannel_verify.c
+++ b/lib/vtls/schannel_verify.c
@@ -111,7 +111,7 @@ static CURLcode add_certs_to_store(HCERTSTORE trust_store,
*/
ca_file_handle = CreateFile(ca_file_tstr,
GENERIC_READ,
- 0,
+ FILE_SHARE_READ,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,