Browse Source

change "char pch[200000]" to "new char[200000]"

pull/145/head
daniel 10 years ago
committed by Wladimir J. van der Laan
parent
commit
fcb0a1bb9c
  1. 19
      src/util.cpp

19
src/util.cpp

@ -168,15 +168,14 @@ void RandAddSeedPerfmon()
#ifdef WIN32 #ifdef WIN32
// Don't need this on Linux, OpenSSL automatically uses /dev/urandom // Don't need this on Linux, OpenSSL automatically uses /dev/urandom
// Seed with the entire set of perfmon data // Seed with the entire set of perfmon data
unsigned char pdata[250000]; std::vector <unsigned char> vData(250000,0);
memset(pdata, 0, sizeof(pdata)); unsigned long nSize = vData.size();
unsigned long nSize = sizeof(pdata); long ret = RegQueryValueExA(HKEY_PERFORMANCE_DATA, "Global", NULL, NULL, begin_ptr(vData), &nSize);
long ret = RegQueryValueExA(HKEY_PERFORMANCE_DATA, "Global", NULL, NULL, pdata, &nSize);
RegCloseKey(HKEY_PERFORMANCE_DATA); RegCloseKey(HKEY_PERFORMANCE_DATA);
if (ret == ERROR_SUCCESS) if (ret == ERROR_SUCCESS)
{ {
RAND_add(pdata, nSize, nSize/100.0); RAND_add(begin_ptr(vData), nSize, nSize/100.0);
OPENSSL_cleanse(pdata, nSize); OPENSSL_cleanse(begin_ptr(vData), nSize);
LogPrint("rand", "RandAddSeed() %lu bytes\n", nSize); LogPrint("rand", "RandAddSeed() %lu bytes\n", nSize);
} }
#endif #endif
@ -1141,15 +1140,15 @@ void ShrinkDebugFile()
if (file && boost::filesystem::file_size(pathLog) > 10 * 1000000) if (file && boost::filesystem::file_size(pathLog) > 10 * 1000000)
{ {
// Restart the file with some of the end // Restart the file with some of the end
char pch[200000]; std::vector <char> vch(200000,0);
fseek(file, -sizeof(pch), SEEK_END); fseek(file, -vch.size(), SEEK_END);
int nBytes = fread(pch, 1, sizeof(pch), file); int nBytes = fread(begin_ptr(vch), 1, vch.size(), file);
fclose(file); fclose(file);
file = fopen(pathLog.string().c_str(), "w"); file = fopen(pathLog.string().c_str(), "w");
if (file) if (file)
{ {
fwrite(pch, 1, nBytes, file); fwrite(begin_ptr(vch), 1, nBytes, file);
fclose(file); fclose(file);
} }
} }

Loading…
Cancel
Save