From c6b17be744b21b4d4c0888708a49b1c3cd844834 Mon Sep 17 00:00:00 2001 From: Christian Prochaska Date: Thu, 30 Jul 2020 11:51:41 +0200 Subject: [PATCH] vfs/lwip: clear the packet queue in '~Udp_socket_dir()' Fixes #3836 --- repos/libports/src/lib/vfs/lwip/vfs.cc | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/repos/libports/src/lib/vfs/lwip/vfs.cc b/repos/libports/src/lib/vfs/lwip/vfs.cc index fc7176848d..fb48a0f269 100644 --- a/repos/libports/src/lib/vfs/lwip/vfs.cc +++ b/repos/libports/src/lib/vfs/lwip/vfs.cc @@ -793,7 +793,7 @@ class Lwip::Udp_socket_dir final : private: u16_t offset = 0; - pbuf *buf; + pbuf * const buf; public: @@ -857,6 +857,10 @@ class Lwip::Udp_socket_dir final : virtual ~Udp_socket_dir() { + _packet_queue.dequeue_all([&] (Packet &pkt) { + destroy(_packet_slab, &pkt); + }); + udp_remove(_pcb); _pcb = NULL;