On 8/31/2017 11:36 PM, Antony Antony wrote:
 > Hi Aviv,
 >
 > thanks for trying to fix the issue. However, this patch introduce more
 > problems.
 >
 > netlink_esp_hw_offload =  UINT_MAX  or UINT_MAX-1
 > netlink_esp_hw_offload + 32 would overflow.
 >
 > ** CID 1455227:    (INTEGER_OVERFLOW)
 > /programs/pluto/kernel_netlink.c: 932 in netlink_detect_offload()
 > /programs/pluto/kernel_netlink.c: 924 in netlink_detect_offload()
 > /programs/pluto/kernel_netlink.c: 924 in netlink_detect_offload()

Hi Antony,

Thanks for testing the patch.

 > 920          if (netlink_esp_hw_offload == NIC_OFFLOAD_UNSUPPORTED)
 > 921                  return ret;
 > 922
 > 923          /* Feature is supported by kernel. Query device features */
 >>>>      CID 1455227:    (INTEGER_OVERFLOW)
 >>>>      Add operation overflows on operands "netlink_esp_hw_offload" 
and "31U".
 > 924          blocks = (netlink_esp_hw_offload + 31) / 32;
 > 925          feature_bit = 1 << (netlink_esp_hw_offload % 31);

Coverity doesn't recognize that this flow can't be reached if
(netlink_esp_hw_offload == NIC_OFFLOAD_UNKNOWN) ||
(netlink_esp_hw_offload == NIC_OFFLOAD_UNSUPPORTED).

Another way to silence the original warning is to cast
netlink_esp_hw_offload to unsigned prior to shifting.

Sending v2 in a few minutes.

Thanks,
Aviv
_______________________________________________
Swan-dev mailing list
[email protected]
https://lists.libreswan.org/mailman/listinfo/swan-dev

Reply via email to