diff options
author | wolfbeast <mcwerewolf@wolfbeast.com> | 2020-03-17 20:14:22 +0100 |
---|---|---|
committer | wolfbeast <mcwerewolf@wolfbeast.com> | 2020-04-14 13:11:51 +0200 |
commit | 4fd0b98c2c67468dbb8b72b4389c4b1b8390e5ff (patch) | |
tree | 2d2f35b958a52645241588fd43ae813445120c90 | |
parent | 894b33e53a0c05f0d5b083caf97db0f20f758d5d (diff) | |
download | UXP-4fd0b98c2c67468dbb8b72b4389c4b1b8390e5ff.tar UXP-4fd0b98c2c67468dbb8b72b4389c4b1b8390e5ff.tar.gz UXP-4fd0b98c2c67468dbb8b72b4389c4b1b8390e5ff.tar.lz UXP-4fd0b98c2c67468dbb8b72b4389c4b1b8390e5ff.tar.xz UXP-4fd0b98c2c67468dbb8b72b4389c4b1b8390e5ff.zip |
Issue #1467 - Part 3: Use UTF-8 file paths for NSS-SQL database.
-rw-r--r-- | security/manager/ssl/nsNSSComponent.cpp | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/security/manager/ssl/nsNSSComponent.cpp b/security/manager/ssl/nsNSSComponent.cpp index d505b8aba..6d1e3c5f7 100644 --- a/security/manager/ssl/nsNSSComponent.cpp +++ b/security/manager/ssl/nsNSSComponent.cpp @@ -1706,16 +1706,25 @@ GetNSSProfilePath(nsAutoCString& aProfilePath) } #if defined(XP_WIN) - // Native path will drop Unicode characters that cannot be mapped to system's - // codepage, using short (canonical) path as workaround. nsCOMPtr<nsILocalFileWin> profileFileWin(do_QueryInterface(profileFile)); if (!profileFileWin) { MOZ_LOG(gPIPNSSLog, LogLevel::Error, ("Could not get nsILocalFileWin for profile directory.\n")); return NS_ERROR_FAILURE; } +#ifdef NSS_SQLSTORE + // SQLite always takes UTF-8 file paths regardless of the current system + // code page. + nsAutoString u16ProfilePath; + rv = profileFileWin->GetCanonicalPath(u16ProfilePath); + CopyUTF16toUTF8(u16ProfilePath, aProfilePath); +#else + // Native path will drop Unicode characters that cannot be mapped to system's + // codepage, using short (canonical) path as workaround. rv = profileFileWin->GetNativeCanonicalPath(aProfilePath); +#endif #else + // On non-Windows, just get the native profile path. rv = profileFile->GetNativePath(aProfilePath); #endif |