From 15590be4648b296f8cdbcab8c90059e0e53aad14 Mon Sep 17 00:00:00 2001 From: Mark Pizzolato Date: Thu, 30 Jan 2020 04:26:36 -0800 Subject: [PATCH] ETHER: Avoid potential memory leak on network shutdown. --- sim_ether.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/sim_ether.c b/sim_ether.c index 4c75df70..fcc2aeb0 100644 --- a/sim_ether.c +++ b/sim_ether.c @@ -1940,8 +1940,15 @@ while (dev->handle) { /* Put buffer on free buffer list */ request->next = dev->write_buffers; dev->write_buffers = request; + request = NULL; } } +/* If we exited these loops with a request allocated, */ +/* avoid buffer leaking by putting it on free buffer list */ +if (request) { + request->next = dev->write_buffers; + dev->write_buffers = request; + } pthread_mutex_unlock (&dev->writer_lock); sim_debug(dev->dbit, dev->dptr, "Writer Thread Exiting\n");