Variable sz is declared as an unsigned size_t and is being checked for an less than zero error return on a call to tls_rx_msg_size. Fix this by making sz an int. Fixes: 84c61fe1a75b ("tls: rx: do not use the standard strparser") Signed-off-by: Colin Ian King <colin.i.king@xxxxxxxxx> --- net/tls/tls_strp.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/net/tls/tls_strp.c b/net/tls/tls_strp.c index b945288c312e..2b9c42b8064c 100644 --- a/net/tls/tls_strp.c +++ b/net/tls/tls_strp.c @@ -187,7 +187,8 @@ static int tls_strp_copyin(read_descriptor_t *desc, struct sk_buff *in_skb, unsigned int offset, size_t in_len) { struct tls_strparser *strp = (struct tls_strparser *)desc->arg.data; - size_t sz, len, chunk; + int sz; + size_t len, chunk; struct sk_buff *skb; skb_frag_t *frag; @@ -215,7 +216,7 @@ static int tls_strp_copyin(read_descriptor_t *desc, struct sk_buff *in_skb, /* We may have over-read, sz == 0 is guaranteed under-read */ if (sz > 0) - chunk = min_t(size_t, chunk, sz - skb->len); + chunk = min_t(size_t, chunk, (size_t)sz - skb->len); skb->len += chunk; skb->data_len += chunk; -- 2.35.3