mirror of
https://github.com/Expand-sys/CCash
synced 2025-12-19 01:22:14 +11:00
🐛 if load data was larger then max size, incorrect resize would occur
This commit is contained in:
parent
59417ccebf
commit
5a6ac776bd
1 changed files with 14 additions and 6 deletions
|
|
@ -31,13 +31,21 @@ struct User
|
||||||
* @param init_pass
|
* @param init_pass
|
||||||
*/
|
*/
|
||||||
User(uint32_t init_bal, uint64_t init_pass) : balance(init_bal), password(init_pass) {}
|
User(uint32_t init_bal, uint64_t init_pass) : balance(init_bal), password(init_pass) {}
|
||||||
User(uint32_t init_bal, uint64_t init_pass, Json::Value&& log_j) : balance(init_bal), password(init_pass)
|
User(uint32_t init_bal, uint64_t init_pass, Json::Value &&log_j) : balance(init_bal), password(init_pass)
|
||||||
{
|
{
|
||||||
if(log_j.size())
|
if (log_j.size())
|
||||||
{
|
{
|
||||||
log.data.resize(log_j.size()+pre_log_size);
|
if (max_log_size > log_j.size() + pre_log_size)
|
||||||
|
{
|
||||||
|
log.data.resize(log_j.size() + pre_log_size);
|
||||||
log.end = log_j.size();
|
log.end = log_j.size();
|
||||||
for(uint32_t i = 0; i < log_j.size() && i < max_log_size; ++i)
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
log.data.resize(max_log_size);
|
||||||
|
log.end = max_log_size;
|
||||||
|
}
|
||||||
|
for (uint32_t i = 0; i < log_j.size() && i < max_log_size; ++i)
|
||||||
{
|
{
|
||||||
log.data[i] = std::move(Transaction(log_j[i]["from"].asCString(), log_j[i]["to"].asCString(), log_j[i]["balance"].asUInt()));
|
log.data[i] = std::move(Transaction(log_j[i]["from"].asCString(), log_j[i]["to"].asCString(), log_j[i]["balance"].asUInt()));
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue