diff options
author | Adam Langley <agl@google.com> | 2016-02-22 20:16:57 +0300 |
---|---|---|
committer | David Benjamin <davidben@google.com> | 2016-02-22 20:19:33 +0300 |
commit | 65dcfc7f9b2ae147cf817ecad22dfcab89230d5e (patch) | |
tree | f3fd0d3e9b1f8fa90ad79de84fe4f9f3efd4bb10 /crypto/bio | |
parent | 6d49157929abdefb155daf2751dc03fd9eb4240c (diff) |
Remove CP_UTF8 code for Windows filenames.
Thanks to Gisle Vanem for pointing out that this code was broken and
could never have compiled. Since it has never worked, and thus has never
been used, remove it.
Change-Id: Ic274eaf187928765a809690eda8d790b79f939a5
Reviewed-on: https://boringssl-review.googlesource.com/7190
Reviewed-by: David Benjamin <davidben@google.com>
Diffstat (limited to 'crypto/bio')
-rw-r--r-- | crypto/bio/file.c | 40 |
1 files changed, 2 insertions, 38 deletions
diff --git a/crypto/bio/file.c b/crypto/bio/file.c index 9e29b43c..b903bc28 100644 --- a/crypto/bio/file.c +++ b/crypto/bio/file.c @@ -87,47 +87,11 @@ #define BIO_FP_WRITE 0x04 #define BIO_FP_APPEND 0x08 -static FILE *open_file(const char *filename, const char *mode) { -#if defined(OPENSSL_WINDOWS) && defined(CP_UTF8) - int sz, len_0 = (int)strlen(filename) + 1; - DWORD flags; - - /* Basically there are three cases to cover: a) filename is pure ASCII - * string; b) actual UTF-8 encoded string and c) locale-ized string, i.e. one - * containing 8-bit characters that are meaningful in current system locale. - * If filename is pure ASCII or real UTF-8 encoded string, - * MultiByteToWideChar succeeds and _wfopen works. If filename is locale-ized - * string, chances are that MultiByteToWideChar fails reporting - * ERROR_NO_UNICODE_TRANSLATION, in which case we fall back to fopen... */ - if ((sz = MultiByteToWideChar(CP_UTF8, (flags = MB_ERR_INVALID_CHARS), - filename, len_0, NULL, 0)) > 0 || - (GetLastError() == ERROR_INVALID_FLAGS && - (sz = MultiByteToWideChar(CP_UTF8, (flags = 0), filename, len_0, NULL, - 0)) > 0)) { - WCHAR wmode[8]; - WCHAR *wfilename = _alloca(sz * sizeof(WCHAR)); - - if (MultiByteToWideChar(CP_UTF8, flags, filename, len_0, wfilename, sz) && - MultiByteToWideChar(CP_UTF8, 0, mode, strlen(mode) + 1, wmode, - sizeof(wmode) / sizeof(wmode[0])) && - (file = _wfopen(wfilename, wmode)) == NULL && - (errno == ENOENT || - errno == EBADF)) /* UTF-8 decode succeeded, but no file, filename - * could still have been locale-ized... */ - return fopen(filename, mode); - } else if (GetLastError() == ERROR_NO_UNICODE_TRANSLATION) { - return fopen(filename, mode); - } -#else - return fopen(filename, mode); -#endif -} - BIO *BIO_new_file(const char *filename, const char *mode) { BIO *ret; FILE *file; - file = open_file(filename, mode); + file = fopen(filename, mode); if (file == NULL) { OPENSSL_PUT_SYSTEM_ERROR(); @@ -256,7 +220,7 @@ static long file_ctrl(BIO *b, int cmd, long num, void *ptr) { ret = 0; break; } - fp = open_file(ptr, p); + fp = fopen(ptr, p); if (fp == NULL) { OPENSSL_PUT_SYSTEM_ERROR(); ERR_add_error_data(5, "fopen('", ptr, "','", p, "')"); |