mirror of
				https://git.zaroz.cloud/nintendo-back-up/yuzu/yuzu.git
				synced 2025-05-12 00:45:25 +00:00 
			
		
		
		
	Parcel: Ensure we don't read past the end of the parcels in Vi.
This commit is contained in:
		
							parent
							
								
									2662de6e52
								
							
						
					
					
						commit
						d758332425
					
				@ -39,6 +39,7 @@ public:
 | 
			
		||||
 | 
			
		||||
    template <typename T>
 | 
			
		||||
    T Read() {
 | 
			
		||||
        ASSERT(read_index + sizeof(T) <= buffer.size());
 | 
			
		||||
        T val;
 | 
			
		||||
        std::memcpy(&val, buffer.data() + read_index, sizeof(T));
 | 
			
		||||
        read_index += sizeof(T);
 | 
			
		||||
@ -48,6 +49,7 @@ public:
 | 
			
		||||
 | 
			
		||||
    template <typename T>
 | 
			
		||||
    T ReadUnaligned() {
 | 
			
		||||
        ASSERT(read_index + sizeof(T) <= buffer.size());
 | 
			
		||||
        T val;
 | 
			
		||||
        std::memcpy(&val, buffer.data() + read_index, sizeof(T));
 | 
			
		||||
        read_index += sizeof(T);
 | 
			
		||||
@ -55,6 +57,7 @@ public:
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    std::vector<u8> ReadBlock(size_t length) {
 | 
			
		||||
        ASSERT(read_index + length <= buffer.size());
 | 
			
		||||
        const u8* const begin = buffer.data() + read_index;
 | 
			
		||||
        const u8* const end = begin + length;
 | 
			
		||||
        std::vector<u8> data(begin, end);
 | 
			
		||||
@ -97,6 +100,8 @@ public:
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    void Deserialize() {
 | 
			
		||||
        ASSERT(buffer.size() > sizeof(Header));
 | 
			
		||||
 | 
			
		||||
        Header header{};
 | 
			
		||||
        std::memcpy(&header, buffer.data(), sizeof(Header));
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user