From 6b45648314754c9e44adaf7c647c8130ab2d76e1 Mon Sep 17 00:00:00 2001 From: Allen Hill Date: Fri, 8 May 2026 15:32:18 -0700 Subject: [PATCH] Fix memory leaks from refactor --- src/sniffer.c | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/src/sniffer.c b/src/sniffer.c index b026f93..4728180 100644 --- a/src/sniffer.c +++ b/src/sniffer.c @@ -117,7 +117,7 @@ int main() { while (1) { if (!BUS_IS_IDLE) { - msg = (AVCLAN_frame_t *)(&cache); + msg = (AVCLAN_frame_t *)popQueue(&cache); if (!msg) { RS232_Print("!! Dropping an incoming message; cache is empty !!"); continue; @@ -126,6 +126,8 @@ int main() { err = AVCLAN_readframe(msg); if (!err) err = pushQueue(&incoming, msg) && pushQueue(&cache, msg); + else + pushQueue(&cache, msg); } else if (!isEmpty(&incoming)) { out = (AVCLAN_frame_t *)popQueue(&cache); if (!out) { @@ -232,7 +234,8 @@ int main() { } *resp = (RFrame_t){.r = r_Handled, .frame = out}; push_or_return_resp(resp); - } + } else + pushQueue(&cache, out); } break; case 'P': @@ -251,7 +254,8 @@ int main() { } *resp = (RFrame_t){.r = r_Handled, .frame = out}; push_or_return_resp(resp); - } + } else + pushQueue(&cache, out); } break; @@ -297,8 +301,10 @@ int main() { if (resp) { *resp = (RFrame_t){.r = r_Handled, .frame = out}; push_or_return_resp(resp); - } - } + } else + pushQueue(&cache, out); + } else + pushQueue(&cache, out); } readSeq = readBinary = 0; } else @@ -319,7 +325,8 @@ int main() { memcpy(out->data, data_tmp, seqLen); *resp = (RFrame_t){.r = r_Handled, .frame = out}; push_or_return_resp(resp); - } + } else + pushQueue(&cache, out); } printAllFrames = lastPrintAllFrames; }