svc: Check for word alignment of addresses within svcArbitrateLock/svcArbitrateUnlock
The kernel itself checks whether or not the provided addresses are word aligned before continuing, so we should be doing the same.
This commit is contained in:
		
							parent
							
								
									541e9624eb
								
							
						
					
					
						commit
						4b5ae8dbaa
					
				@ -350,6 +350,10 @@ static ResultCode ArbitrateLock(Handle holding_thread_handle, VAddr mutex_addr,
 | 
			
		||||
        return ERR_INVALID_ADDRESS_STATE;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (!Common::IsWordAligned(mutex_addr)) {
 | 
			
		||||
        return ERR_INVALID_ADDRESS;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    auto& handle_table = Core::System::GetInstance().Kernel().HandleTable();
 | 
			
		||||
    return Mutex::TryAcquire(handle_table, mutex_addr, holding_thread_handle,
 | 
			
		||||
                             requesting_thread_handle);
 | 
			
		||||
@ -363,6 +367,10 @@ static ResultCode ArbitrateUnlock(VAddr mutex_addr) {
 | 
			
		||||
        return ERR_INVALID_ADDRESS_STATE;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (!Common::IsWordAligned(mutex_addr)) {
 | 
			
		||||
        return ERR_INVALID_ADDRESS;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return Mutex::Release(mutex_addr);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user