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);
 | 
			
		||||
 | 
			
		||||
			auto secondDelta = this->lastMessageTime.secsTo(message.time);
 | 
			
		||||
			if (secondDelta >= 29) {
 | 
			
		||||
			if (secondDelta >= 0x1d) {
 | 
			
		||||
				// 0x1d = followed by delta int
 | 
			
		||||
				// 0x1e = followed by epoch delta int
 | 
			
		||||
				field |= (secondDelta < 0xffff ? 0x1d : 0x1e) << 3;
 | 
			
		||||
| 
						 | 
				
			
			@ -521,6 +521,7 @@ start:
 | 
			
		|||
				if (!this->readVarInt(&secondDelta)) return false;
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			if (index < 0 || index >= this->recentMessages.size()) return false;
 | 
			
		||||
			*slot = this->recentMessages.at(index);
 | 
			
		||||
			this->lastMessageTime = this->lastMessageTime.addSecs(static_cast<qint64>(secondDelta));
 | 
			
		||||
			slot->time = this->lastMessageTime;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue