summaryrefslogtreecommitdiffstats
path: root/security/manager
diff options
context:
space:
mode:
authorwolfbeast <mcwerewolf@wolfbeast.com>2020-03-17 20:14:22 +0100
committerwolfbeast <mcwerewolf@wolfbeast.com>2020-04-14 13:11:51 +0200
commit4fd0b98c2c67468dbb8b72b4389c4b1b8390e5ff (patch)
tree2d2f35b958a52645241588fd43ae813445120c90 /security/manager
parent894b33e53a0c05f0d5b083caf97db0f20f758d5d (diff)
downloadUXP-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.
Diffstat (limited to 'security/manager')
-rw-r--r--security/manager/ssl/nsNSSComponent.cpp13
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