NET: atlx, fix memory leak

Stanse found a memory leak in atl2_get_eeprom. eeprom_buff is not
freed/assigned on all paths. Fix that.

Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Cc: Jay Cliburn <jcliburn@gmail.com>
Cc: Chris Snook <chris.snook@gmail.com>
Cc: Jie Yang <jie.yang@atheros.com>
Cc: atl1-devel@lists.sourceforge.net
Cc: "David S. Miller" <davem@davemloft.net>
Cc: netdev@vger.kernel.org
Signed-off-by: David S. Miller <davem@davemloft.net>

authored by

Jiri Slaby and committed by
David S. Miller
2467ab95 c91aa55e

+5 -2
+5 -2
drivers/net/atlx/atl2.c
··· 1959 1959 return -ENOMEM; 1960 1960 1961 1961 for (i = first_dword; i < last_dword; i++) { 1962 - if (!atl2_read_eeprom(hw, i*4, &(eeprom_buff[i-first_dword]))) 1963 - return -EIO; 1962 + if (!atl2_read_eeprom(hw, i*4, &(eeprom_buff[i-first_dword]))) { 1963 + ret_val = -EIO; 1964 + goto free; 1965 + } 1964 1966 } 1965 1967 1966 1968 memcpy(bytes, (u8 *)eeprom_buff + (eeprom->offset & 3), 1967 1969 eeprom->len); 1970 + free: 1968 1971 kfree(eeprom_buff); 1969 1972 1970 1973 return ret_val;