firewire: cdev: restrict broadcast write requests to Units Space
We don't want random users write to Memory Space (e.g. PCs with physical DMA filters down) or to core CSRs like Reset_Start. This does not protect SBP-2 target CSRs. But properly behaving SBP-2 targets ignore broadcast write requests to these registers, and the maximum damage which can happen with laxer targets is DOS. But there are ways to create DOS situations anyway if there are devices with weak device file permissions (like audio/video devices) present at the same bus as an SBP-2 target. Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
This commit is contained in:
		
					parent
					
						
							
								acfe833357
							
						
					
				
			
			
				commit
				
					
						1566f3dc3e
					
				
			
		
					 1 changed files with 4 additions and 0 deletions
				
			
		| 
						 | 
				
			
			@ -1245,6 +1245,10 @@ static int ioctl_send_broadcast_request(struct client *client, void *buffer)
 | 
			
		|||
		return -EINVAL;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/* Security policy: Only allow accesses to Units Space. */
 | 
			
		||||
	if (request->offset < CSR_REGISTER_BASE + CSR_CONFIG_ROM_END)
 | 
			
		||||
		return -EACCES;
 | 
			
		||||
 | 
			
		||||
	return init_request(client, request, LOCAL_BUS | 0x3f, SCODE_100);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue