lan9118: fix a buffer overflow
Fix a buffer overflow, reported by cppcheck: [/src/qemu/hw/lan9118.c:849]: (error) Buffer access out-of-bounds: s.eeprom All eeprom handling code assumes that the size of eeprom is 128, except lan9118_eeprom_cmd. Fix this by restricting the address passed. Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
This commit is contained in:
		
							parent
							
								
									f0ff243a16
								
							
						
					
					
						commit
						c46a3ea025
					
				| @ -187,7 +187,7 @@ typedef struct { | ||||
|     uint32_t phy_int_mask; | ||||
| 
 | ||||
|     int eeprom_writable; | ||||
|     uint8_t eeprom[8]; | ||||
|     uint8_t eeprom[128]; | ||||
| 
 | ||||
|     int tx_fifo_size; | ||||
|     LAN9118Packet *txp; | ||||
| @ -1003,7 +1003,7 @@ static void lan9118_writel(void *opaque, target_phys_addr_t offset, | ||||
|         s->afc_cfg = val & 0x00ffffff; | ||||
|         break; | ||||
|     case CSR_E2P_CMD: | ||||
|         lan9118_eeprom_cmd(s, (val >> 28) & 7, val & 0xff); | ||||
|         lan9118_eeprom_cmd(s, (val >> 28) & 7, val & 0x7f); | ||||
|         break; | ||||
|     case CSR_E2P_DATA: | ||||
|         s->e2p_data = val & 0xff; | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Blue Swirl
						Blue Swirl