On Fri, Oct 6, 2023 at 2:28 PM Ma Ke <make_ruc2...@163.com> wrote: > > In vector_legacy_rx, to avoid an unexpected result returned by > pskb_trim, we should check the return value of pskb_trim(). > > Signed-off-by: Ma Ke <make_ruc2...@163.com> > --- > arch/um/drivers/vector_kern.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/arch/um/drivers/vector_kern.c b/arch/um/drivers/vector_kern.c > index 131b7cb29576..822a8c0cdcc1 100644 > --- a/arch/um/drivers/vector_kern.c > +++ b/arch/um/drivers/vector_kern.c > @@ -890,7 +890,8 @@ static int vector_legacy_rx(struct vector_private *vp) > skb->ip_summed = CHECKSUM_UNNECESSARY; > } > } > - pskb_trim(skb, pkt_len - vp->rx_header_size); > + if (pskb_trim(skb, pkt_len - vp->rx_header_size)) > + return 0;
I think this adds a memory leak. Also, can pskb_trim() really fail in this scenario? The function controls skb creation and knows all lengths.