forked from quickshell/quickshell
core/log: ensure malformed logs cannot overflow ring buffer
This commit is contained in:
parent
5f4d7f89db
commit
14852700cb
1 changed files with 2 additions and 1 deletions
|
@ -469,7 +469,7 @@ bool EncodedLogWriter::write(const LogMessage& message) {
|
||||||
quint8 field = compressedTypeOf(message.type);
|
quint8 field = compressedTypeOf(message.type);
|
||||||
|
|
||||||
auto secondDelta = this->lastMessageTime.secsTo(message.time);
|
auto secondDelta = this->lastMessageTime.secsTo(message.time);
|
||||||
if (secondDelta >= 29) {
|
if (secondDelta >= 0x1d) {
|
||||||
// 0x1d = followed by delta int
|
// 0x1d = followed by delta int
|
||||||
// 0x1e = followed by epoch delta int
|
// 0x1e = followed by epoch delta int
|
||||||
field |= (secondDelta < 0xffff ? 0x1d : 0x1e) << 3;
|
field |= (secondDelta < 0xffff ? 0x1d : 0x1e) << 3;
|
||||||
|
@ -521,6 +521,7 @@ start:
|
||||||
if (!this->readVarInt(&secondDelta)) return false;
|
if (!this->readVarInt(&secondDelta)) return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (index < 0 || index >= this->recentMessages.size()) return false;
|
||||||
*slot = this->recentMessages.at(index);
|
*slot = this->recentMessages.at(index);
|
||||||
this->lastMessageTime = this->lastMessageTime.addSecs(static_cast<qint64>(secondDelta));
|
this->lastMessageTime = this->lastMessageTime.addSecs(static_cast<qint64>(secondDelta));
|
||||||
slot->time = this->lastMessageTime;
|
slot->time = this->lastMessageTime;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue