> On May 26, 2017, at 8:59 PM, Ben Pfaff <[email protected]> wrote: > > Code generated by this program includes constructs like this: > > switch (((uint64_t) vendor << 32) | (type << 16) | code) > > with variables uint32_t vendor, uint16_t type, uint16_t code. By C rules, > "type << 16" has type "int", which means that it will be sign-extended to > 64 bits when ORed with uint64_t. Thus, if 'type' has bit 15 set, then > the overall result will have all of its top 32 bits set, which is not > the desired result. > > This commit fixes the problem. > > No actual error types used in OVS or OpenFlow have bit 15 set, so this > does not fix a user-visible problem. > > Found by Coverity. > > Reported-at: > https://scan3.coverity.com/reports.htm#v16889/p10449/fileInstanceId=14762955&defectInstanceId=4304798&mergedDefectId=180406 > Signed-off-by: Ben Pfaff <[email protected]>
Acked-by: Justin Pettit <[email protected]> --Justin _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
