summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
Diffstat (limited to 'indra')
-rw-r--r--indra/newview/llsechandler_basic.cpp54
-rw-r--r--indra/newview/tests/llsechandler_basic_test.cpp10
2 files changed, 30 insertions, 34 deletions
diff --git a/indra/newview/llsechandler_basic.cpp b/indra/newview/llsechandler_basic.cpp
index 1453506b0d..9827dc605a 100644
--- a/indra/newview/llsechandler_basic.cpp
+++ b/indra/newview/llsechandler_basic.cpp
@@ -1038,46 +1038,42 @@ LLSecAPIBasicHandler::LLSecAPIBasicHandler()
void LLSecAPIBasicHandler::init()
{
+ mProtectedDataMap = LLSD::emptyMap();
if (mProtectedDataFilename.length() == 0)
{
mProtectedDataFilename = gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS,
"bin_conf.dat");
- }
- if (mLegacyPasswordPath.length() == 0)
- {
mLegacyPasswordPath = gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, "password.dat");
- }
- mProtectedDataMap = LLSD::emptyMap();
- mProtectedDataFilename = gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS,
+ mProtectedDataFilename = gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS,
"bin_conf.dat");
+ std::string store_file = gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS,
+ "CA.pem");
+ // copy the CA file to a user writable location so we can manipulate it.
+ // for this provider, by using a user writable file, there is a risk that
+ // an attacking program can modify the file, but OS dependent providers
+ // will reduce that risk.
+ // by using a user file, modifications will be limited to one user if
+ // we read-only the main file
+ if (!LLFile::isfile(store_file))
+ {
- std::string store_file = gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS,
- "CA.pem");
- // copy the CA file to a user writable location so we can manipulate it.
- // for this provider, by using a user writable file, there is a risk that
- // an attacking program can modify the file, but OS dependent providers
- // will reduce that risk.
- // by using a user file, modifications will be limited to one user if
- // we read-only the main file
- if (!LLFile::isfile(store_file))
- {
-
- std::string ca_file_path = gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "CA.pem");
- llifstream ca_file(ca_file_path.c_str(), llifstream::binary | llifstream::in);
- llofstream copied_store_file(store_file.c_str(), llofstream::binary | llofstream::out);
+ std::string ca_file_path = gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "CA.pem");
+ llifstream ca_file(ca_file_path.c_str(), llifstream::binary | llifstream::in);
+ llofstream copied_store_file(store_file.c_str(), llofstream::binary | llofstream::out);
- while(!ca_file.fail())
- {
- char buffer[BUFFER_READ_SIZE];
- ca_file.read(buffer, sizeof(buffer));
- copied_store_file.write(buffer, ca_file.gcount());
+ while(!ca_file.fail())
+ {
+ char buffer[BUFFER_READ_SIZE];
+ ca_file.read(buffer, sizeof(buffer));
+ copied_store_file.write(buffer, ca_file.gcount());
+ }
+ ca_file.close();
+ copied_store_file.close();
}
- ca_file.close();
- copied_store_file.close();
+ LL_INFOS("SECAPI") << "Loading certificate store from " << store_file << LL_ENDL;
+ mStore = new LLBasicCertificateStore(store_file);
}
- LL_INFOS("SECAPI") << "Loading certificate store from " << store_file << LL_ENDL;
- mStore = new LLBasicCertificateStore(store_file);
_readProtectedData(); // initialize mProtectedDataMap
// may throw LLProtectedDataException if saved datamap is not decryptable
}
diff --git a/indra/newview/tests/llsechandler_basic_test.cpp b/indra/newview/tests/llsechandler_basic_test.cpp
index 3e4e8c5b3e..236d17c591 100644
--- a/indra/newview/tests/llsechandler_basic_test.cpp
+++ b/indra/newview/tests/llsechandler_basic_test.cpp
@@ -340,7 +340,7 @@ namespace tut
LLPointer<LLSecAPIBasicHandler> handler = new LLSecAPIBasicHandler("sechandler_settings.tmp",
"test_password.dat");
- handler.init();
+ handler->init();
// data retrieval for existing data
LLSD data = handler->getProtectedData("test_data_type", "test_data_id");
@@ -398,7 +398,7 @@ namespace tut
// cause a 'write' by using 'LLPointer' to delete then instantiate a handler
handler = NULL;
handler = new LLSecAPIBasicHandler("sechandler_settings.tmp", "test_password.dat");
- handler.init();
+ handler->init();
data = handler->getProtectedData("test_data_type1", "test_data_id");
ensure_equals("verify datatype stored data3a", (std::string)data["store_data3"], "test_store_data3");
@@ -413,7 +413,7 @@ namespace tut
// cause a 'write'
handler = new LLSecAPIBasicHandler("sechandler_settings.tmp", "test_password.dat");
- handler.init();
+ handler->init();
data = handler->getProtectedData("test_data_type1", "test_data_id");
ensure("not found", data.isUndefined());
@@ -422,7 +422,7 @@ namespace tut
LLFile::remove("sechandler_settings.tmp");
handler = new LLSecAPIBasicHandler("sechandler_settings.tmp", "test_password.dat");
- handler.init();
+ handler->init();
data = handler->getProtectedData("test_data_type1", "test_data_id");
ensure("not found", data.isUndefined());
handler = NULL;
@@ -435,7 +435,7 @@ namespace tut
void sechandler_basic_test_object::test<3>()
{
LLPointer<LLSecAPIBasicHandler> handler = new LLSecAPIBasicHandler("sechandler_settings.tmp", "test_password.dat");
- handler.init();
+ handler->init();
LLSD my_id = LLSD::emptyMap();
LLSD my_authenticator = LLSD::emptyMap();