On Tue, Nov 25, 2014 at 2:03 PM, Joel Sherrill <joel.sherr...@oarcorp.com> wrote: > 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. > Yeah, but let Sebastian verify
> 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 _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel