Message ID | 20201110170604.5897-5-peter.maydell@linaro.org |
---|---|
State | New |
Headers | show |
Series | hw/net/can/ctucan: fix Coverity and other issues | expand |
Hello Peter, On Tuesday 10 of November 2020 18:06:04 Peter Maydell wrote: > Instead of casting an address within a uint8_t array to a > uint32_t*, use stl_le_p(). This handles possibly misaligned > addresses which would otherwise crash on some hosts. > > Signed-off-by: Peter Maydell <peter.maydell@linaro.org> > Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> > Acked-by: Pavel Pisa <pisa@cmp.felk.cvut.cz> > --- > hw/net/can/ctucan_core.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/hw/net/can/ctucan_core.c b/hw/net/can/ctucan_core.c > index a400ad13a43..0ef528eb879 100644 > --- a/hw/net/can/ctucan_core.c > +++ b/hw/net/can/ctucan_core.c > @@ -305,8 +305,7 @@ void ctucan_mem_write(CtuCanCoreState *s, hwaddr addr, > uint64_t val, addr %= CTUCAN_CORE_TXBUFF_SPAN; > if ((buff_num < CTUCAN_CORE_TXBUF_NUM) || > (addr < sizeof(s->tx_buffer[buff_num].data))) { > - uint32_t *bufp = (uint32_t *)(s->tx_buffer[buff_num].data + > addr); - *bufp = cpu_to_le32(val); > + stl_le_p(s->tx_buffer[buff_num].data + addr, val); > } > } else { > switch (addr & ~3) { I test change soon, but this seems obvious so Acked-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
diff --git a/hw/net/can/ctucan_core.c b/hw/net/can/ctucan_core.c index a400ad13a43..0ef528eb879 100644 --- a/hw/net/can/ctucan_core.c +++ b/hw/net/can/ctucan_core.c @@ -305,8 +305,7 @@ void ctucan_mem_write(CtuCanCoreState *s, hwaddr addr, uint64_t val, addr %= CTUCAN_CORE_TXBUFF_SPAN; if ((buff_num < CTUCAN_CORE_TXBUF_NUM) || (addr < sizeof(s->tx_buffer[buff_num].data))) { - uint32_t *bufp = (uint32_t *)(s->tx_buffer[buff_num].data + addr); - *bufp = cpu_to_le32(val); + stl_le_p(s->tx_buffer[buff_num].data + addr, val); } } else { switch (addr & ~3) {