Commit f50c8a01 authored by David S. Miller's avatar David S. Miller
Browse files

Merge branch 'tls-warnings'



Jakub Kicinski says:

====================
net/tls: fix W=1 build warnings

This small series cleans up two outstanding W=1 build
warnings in tls code.  Both are set but not used variables.
The first case looks fairly straightforward.  In the second
I think it's better to propagate the error code, even if
not doing some does not lead to a crash with current code.
====================

Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents 15192f25 b53f4976
Loading
Loading
Loading
Loading
+1 −4
Original line number Diff line number Diff line
@@ -541,14 +541,11 @@ static int tls_device_push_pending_record(struct sock *sk, int flags)

void tls_device_write_space(struct sock *sk, struct tls_context *ctx)
{
	int rc = 0;

	if (!sk->sk_write_pending && tls_is_partially_sent_record(ctx)) {
		gfp_t sk_allocation = sk->sk_allocation;

		sk->sk_allocation = GFP_ATOMIC;
		rc = tls_push_partial_record(sk, ctx,
					     MSG_DONTWAIT | MSG_NOSIGNAL);
		tls_push_partial_record(sk, ctx, MSG_DONTWAIT | MSG_NOSIGNAL);
		sk->sk_allocation = sk_allocation;
	}
}
+22 −8
Original line number Diff line number Diff line
@@ -119,23 +119,25 @@ static int skb_nsg(struct sk_buff *skb, int offset, int len)
}

static int padding_length(struct tls_sw_context_rx *ctx,
			  struct tls_context *tls_ctx, struct sk_buff *skb)
			  struct tls_prot_info *prot, struct sk_buff *skb)
{
	struct strp_msg *rxm = strp_msg(skb);
	int sub = 0;

	/* Determine zero-padding length */
	if (tls_ctx->prot_info.version == TLS_1_3_VERSION) {
	if (prot->version == TLS_1_3_VERSION) {
		char content_type = 0;
		int err;
		int back = 17;

		while (content_type == 0) {
			if (back > rxm->full_len)
			if (back > rxm->full_len - prot->prepend_size)
				return -EBADMSG;
			err = skb_copy_bits(skb,
					    rxm->offset + rxm->full_len - back,
					    &content_type, 1);
			if (err)
				return err;
			if (content_type)
				break;
			sub++;
@@ -170,10 +172,18 @@ static void tls_decrypt_done(struct crypto_async_request *req, int err)
		tls_err_abort(skb->sk, err);
	} else {
		struct strp_msg *rxm = strp_msg(skb);
		rxm->full_len -= padding_length(ctx, tls_ctx, skb);
		int pad;

		pad = padding_length(ctx, prot, skb);
		if (pad < 0) {
			ctx->async_wait.err = pad;
			tls_err_abort(skb->sk, pad);
		} else {
			rxm->full_len -= pad;
			rxm->offset += prot->prepend_size;
			rxm->full_len -= prot->overhead_size;
		}
	}

	/* After using skb->sk to propagate sk through crypto async callback
	 * we need to NULL it again.
@@ -1478,7 +1488,7 @@ static int decrypt_skb_update(struct sock *sk, struct sk_buff *skb,
	struct tls_prot_info *prot = &tls_ctx->prot_info;
	int version = prot->version;
	struct strp_msg *rxm = strp_msg(skb);
	int err = 0;
	int pad, err = 0;

	if (!ctx->decrypted) {
#ifdef CONFIG_TLS_DEVICE
@@ -1501,7 +1511,11 @@ static int decrypt_skb_update(struct sock *sk, struct sk_buff *skb,
			*zc = false;
		}

		rxm->full_len -= padding_length(ctx, tls_ctx, skb);
		pad = padding_length(ctx, prot, skb);
		if (pad < 0)
			return pad;

		rxm->full_len -= pad;
		rxm->offset += prot->prepend_size;
		rxm->full_len -= prot->overhead_size;
		tls_advance_record_sn(sk, &tls_ctx->rx, version);