mirror of
				https://git.suyu.dev/suyu/suyu.git
				synced 2025-11-04 12:34:39 +08:00 
			
		
		
		
	Core: Fix undefined behavior in mem_map_funcs' WriteBlock function
This commit is contained in:
		
							parent
							
								
									d1c2b76ad1
								
							
						
					
					
						commit
						da18671166
					
				@ -289,11 +289,15 @@ void Write64(const u32 addr, const u64 data) {
 | 
			
		||||
 | 
			
		||||
void WriteBlock(const u32 addr, const u8* data, const int size) {
 | 
			
		||||
    int offset = 0;
 | 
			
		||||
    while (offset < (size & ~3))
 | 
			
		||||
        Write32(addr + offset, *(u32*)&data[offset += 4]);
 | 
			
		||||
    while (offset < (size & ~3)) {
 | 
			
		||||
        Write32(addr + offset, *(u32*)&data[offset]);
 | 
			
		||||
        offset += 4;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (size & 2)
 | 
			
		||||
        Write16(addr + offset, *(u16*)&data[offset += 2]);
 | 
			
		||||
    if (size & 2) {
 | 
			
		||||
        Write16(addr + offset, *(u16*)&data[offset]);
 | 
			
		||||
        offset += 2;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (size & 1)
 | 
			
		||||
        Write8(addr + offset, data[offset]);
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user