🐛 when max log grew since last save, the load would underflow

This commit is contained in:
William Katz 2021-08-01 00:44:37 -07:00 committed by GitHub
parent 2089b5ed97
commit 2823a6fe3f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -21,7 +21,12 @@ User::User(const bank_dom::User &u) noexcept : balance(u.balance), password(u.pa
#if MAX_LOG_SIZE > 0
if (u.logs)
{
for (uint32_t i = (u.logs.value().data.size() - MAX_LOG_SIZE); i < u.logs.value().data.size(); ++i)
uint32_t i = 0;
if (MAX_LOG_SIZE < u.logs.value().data.size())
{
i = (u.logs.value().data.size() - MAX_LOG_SIZE);
}
for (; i < u.logs.value().data.size(); ++i)
{
const bank_dom::Transaction &temp = u.logs.value().data[i];
log.data.emplace_front(temp.from, temp.to, temp.amount, temp.time);
@ -49,4 +54,4 @@ bank_dom::User User::Encode() const noexcept
#else
return bank_dom::User(balance, password, std::nullopt);
#endif
}
}