summaryrefslogtreecommitdiffstats
path: root/crypto/store
diff options
context:
space:
mode:
authorRichard Levitte <levitte@openssl.org>2017-07-15 11:21:11 +0200
committerRichard Levitte <levitte@openssl.org>2017-07-15 18:53:07 +0200
commit1145995323a2a6b6e31602dbf2c546943a7db06f (patch)
treef558ccaf6a123105cc30e718cab8093ed0967ec8 /crypto/store
parent6eaebfaab503293f03c9d8cdd48e831d1f12f89b (diff)
OSSL_STORE "file" scheme loader: check that a DOS device is correctly named
Reviewed-by: Andy Polyakov <appro@openssl.org> (Merged from https://github.com/openssl/openssl/pull/3907)
Diffstat (limited to 'crypto/store')
-rw-r--r--crypto/store/loader_file.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/crypto/store/loader_file.c b/crypto/store/loader_file.c
index 31ca2c6315..7cb145753e 100644
--- a/crypto/store/loader_file.c
+++ b/crypto/store/loader_file.c
@@ -783,9 +783,13 @@ static OSSL_STORE_LOADER_CTX *file_open(const OSSL_STORE_LOADER *loader,
#ifdef _WIN32
/* Windows file: URIs with a drive letter start with a / */
if (p[0] == '/' && p[2] == ':' && p[3] == '/') {
- p++;
- /* We know it's absolute, so no need to check */
- path_data[path_data_n].check_absolute = 0;
+ char c = tolower(p[1]);
+
+ if (c >= 'a' && c <= 'z') {
+ p++;
+ /* We know it's absolute, so no need to check */
+ path_data[path_data_n].check_absolute = 0;
+ }
}
#endif
path_data[path_data_n++].path = p;