On Tue, Feb 1, 2022 at 11:46 AM Mark Michelson <[email protected]> wrote: > > Acked-by: Mark Michelson <[email protected]>
Thanks. I applied this patch to the main branch and branch-21.12. Do let me know if it needs to be backported further down. Numan > > On 1/28/22 11:14, Dumitru Ceara wrote: > > GCC reported an out of bounds array access when compiling with -O2: > > controller/pinctrl.c: In function ‘pinctrl_handle_icmp’: > > controller/pinctrl.c:1673:9: error: ‘memcpy’ offset [0, 19] is out of > > the bounds [0, 0] [-Werror=array-bounds] > > 1673 | memcpy(data, in_ip, in_ip_len); > > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > > > GCC version is: 11.2.1 20210728 (Red Hat 11.2.1-1) (GCC) > > > > This happens because the compiler cannot infer that in this specific > > case dp_packet_l4(&packet) can never return NULL. > > > > pinctrl_compose_ipv4() calls eth_compose() which calls > > dp_packet_set_l3() and always sets 'l4_ofs' to a value that's different > > from UINT16_MAX. > > > > Help the compiler out by asserting that the L4 data is not NULL. > > > > Simplified code sample shared on the gcc-help mailing list: > > https://gcc.gnu.org/pipermail/gcc-help/2022-January/141160.html > > > > Reported-by: Ihar Hrachyshka <[email protected]> > > Tested-by: Lorenzo Bianconi <[email protected]> > > Signed-off-by: Dumitru Ceara <[email protected]> > > --- > > controller/pinctrl.c | 6 ++++++ > > 1 file changed, 6 insertions(+) > > > > diff --git a/controller/pinctrl.c b/controller/pinctrl.c > > index d2bb7f441..71a12e8b0 100644 > > --- a/controller/pinctrl.c > > +++ b/controller/pinctrl.c > > @@ -1666,6 +1666,12 @@ pinctrl_handle_icmp(struct rconn *swconn, const > > struct flow *ip_flow, > > } > > > > struct icmp_header *ih = dp_packet_l4(&packet); > > + > > + /* The packet's L4 data was allocated and will never be NULL, > > inform > > + * the compiler about that. > > + */ > > + ovs_assert(ih); > > + > > packet_set_icmp(&packet, ICMP4_DST_UNREACH, icmp_code); > > > > /* Include original IP + data. */ > > > > _______________________________________________ > dev mailing list > [email protected] > https://mail.openvswitch.org/mailman/listinfo/ovs-dev _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
