Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 293e4297 authored by Jason A. Donenfeld's avatar Jason A. Donenfeld Committed by Greg Kroah-Hartman
Browse files

UPSTREAM: wireguard: queueing: cleanup ptr_ring in error path of packet_queue_init



Prior, if the alloc_percpu of packet_percpu_multicore_worker_alloc
failed, the previously allocated ptr_ring wouldn't be freed. This commit
adds the missing call to ptr_ring_cleanup in the error case.

Reported-by: default avatarSultan Alsawaf <sultan@kerneltoast.com>
Fixes: e7096c131e51 ("net: WireGuard secure network tunnel")
Signed-off-by: default avatarJason A. Donenfeld <Jason@zx2c4.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
(cherry picked from commit 130c58606171326c81841a49cc913cd354113dd9)
Bug: 152722841
Signed-off-by: default avatarJason A. Donenfeld <Jason@zx2c4.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@google.com>
Change-Id: Iad1c5bc2be2459b3dbe4791a5fec09a9403d7d56
parent a0b9a1f1
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -35,8 +35,10 @@ int wg_packet_queue_init(struct crypt_queue *queue, work_func_t function,
		if (multicore) {
			queue->worker = wg_packet_percpu_multicore_worker_alloc(
				function, queue);
			if (!queue->worker)
			if (!queue->worker) {
				ptr_ring_cleanup(&queue->ring, NULL);
				return -ENOMEM;
			}
		} else {
			INIT_WORK(&queue->work, function);
		}