Skip to content

Commit 03957d8

Browse files
committed
tls: rx: coalesce exit paths in tls_decrypt_sg()
Jump to the free() call, instead of having to remember to free the memory in multiple places. Signed-off-by: Jakub Kicinski <[email protected]>
1 parent b89fec5 commit 03957d8

File tree

1 file changed

+5
-9
lines changed

1 file changed

+5
-9
lines changed

net/tls/tls_sw.c

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1491,10 +1491,8 @@ static int decrypt_internal(struct sock *sk, struct sk_buff *skb,
14911491
err = skb_copy_bits(skb, rxm->offset + TLS_HEADER_SIZE,
14921492
&dctx->iv[iv_offset] + prot->salt_size,
14931493
prot->iv_size);
1494-
if (err < 0) {
1495-
kfree(mem);
1496-
return err;
1497-
}
1494+
if (err < 0)
1495+
goto exit_free;
14981496
memcpy(&dctx->iv[iv_offset], tls_ctx->rx.iv, prot->salt_size);
14991497
}
15001498
xor_iv_with_seq(prot, &dctx->iv[iv_offset], tls_ctx->rx.rec_seq);
@@ -1510,10 +1508,8 @@ static int decrypt_internal(struct sock *sk, struct sk_buff *skb,
15101508
err = skb_to_sgvec(skb, &sgin[1],
15111509
rxm->offset + prot->prepend_size,
15121510
rxm->full_len - prot->prepend_size);
1513-
if (err < 0) {
1514-
kfree(mem);
1515-
return err;
1516-
}
1511+
if (err < 0)
1512+
goto exit_free;
15171513

15181514
if (n_sgout) {
15191515
if (out_iov) {
@@ -1556,7 +1552,7 @@ static int decrypt_internal(struct sock *sk, struct sk_buff *skb,
15561552
/* Release the pages in case iov was mapped to pages */
15571553
for (; pages > 0; pages--)
15581554
put_page(sg_page(&sgout[pages]));
1559-
1555+
exit_free:
15601556
kfree(mem);
15611557
return err;
15621558
}

0 commit comments

Comments
 (0)