Hi These appear to be easy to address. I would appreciate someone addressing these:
i2c/eeprom.c: 221 1. Condition address_bytes > 4, taking false branch 2. cond_at_most: Checking address_bytes > 4 implies that address_bytes has the value which may be up to 4 on the false branch. 222 if (address_bytes > EEPROM_MAX_ADDRESS_BYTES) { 223 rtems_set_errno_and_return_minus_one(ERANGE); 224 } 225 3. Condition page_size_in_bytes > 128, taking true branch 226 if (page_size_in_bytes > EEPROM_MAX_PAGE_SIZE) { 227 page_size_in_bytes = EEPROM_MAX_PAGE_SIZE; 228 } 229 CID 1255517 (#1 of 1): Bad bit shift operation (BAD_SHIFT)4. large_shift: In expression size_in_bytes >> 8 * address_bytes, right shifting by more than 31 bits has undefined behavior. The shift amount, 8 * address_bytes, is as much as 32. 230 extra_address = size_in_bytes >> (8 * address_bytes); I think line 230 should be something like: if ( address_bytes == EEPROM_MAX_ADDRESS_BYTES ) extra_address = 0; else extra_address = size_in_bytes >> (8 * address_bytes); That avoids the undefined behavior. Comments -- Joel Sherrill, Ph.D. Director of Research & Development joel.sherr...@oarcorp.com On-Line Applications Research Ask me about RTEMS: a free RTOS Huntsville AL 35805 Support Available (256) 722-9985
_______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel