diff --git a/CHANGES b/CHANGES index 69f9853..9d0acd7 100644 --- a/CHANGES +++ b/CHANGES @@ -1,6 +1,9 @@ i2c-tools CHANGES ----------------- +3.1.3 (work in progress) + decode-dimms: Correctly check for out-of-bounds vendor ID + 3.1.2 (2015-06-17) decode-dimms: Fix DDR3 extended temp range refresh rate decoding py-smbus: Add support for python 3 diff --git a/eeprom/decode-dimms b/eeprom/decode-dimms index a088ba0..4a15fd7 100755 --- a/eeprom/decode-dimms +++ b/eeprom/decode-dimms @@ -343,9 +343,11 @@ sub manufacturer_ddr3($$) { my ($count, $code) = @_; return "Invalid" if parity($count) != 1; - return "Invalid" if parity($code) != 1; - return (($code & 0x7F) - 1 > $vendors[$count & 0x7F]) ? "Unknown" : - $vendors[$count & 0x7F][($code & 0x7F) - 1]; + return "Invalid" if parity($code) != 1 + or ($code & 0x7F) == 0; + return "Unknown" if ($count & 0x7F) >= @vendors + or ($code & 0x7F) - 1 >= @{$vendors[$count & 0x7F]}; + return $vendors[$count & 0x7F][($code & 0x7F) - 1]; } sub manufacturer(@)