From c3a88f3b0783f38e9a9b671826ce4c27a557b7b2 Mon Sep 17 00:00:00 2001 From: Paul Dino Jones Date: Mon, 24 Mar 2025 15:57:50 -0400 Subject: [PATCH] Fix issue with serial devices opening when they have already failed once --- src/monocoque/devices/serialadapter.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/monocoque/devices/serialadapter.c b/src/monocoque/devices/serialadapter.c index c2f5fbe..32ed566 100644 --- a/src/monocoque/devices/serialadapter.c +++ b/src/monocoque/devices/serialadapter.c @@ -165,7 +165,7 @@ int monocoque_serial_open(SerialDevice* serialdevice, const char* portdev) slogi("looking to open physical serialdevice %s", portdev); for(int i = 0; i < 10; i++) { - if(monocoque_serial_devices[i].open == true || monocoque_serial_devices[i].openfail == true) + if(monocoque_serial_devices[i].open == true && monocoque_serial_devices[i].openfail == false) { if(msastrcicmp(monocoque_serial_devices[i].portname, portdev) == 0) { @@ -204,6 +204,8 @@ int monocoque_serial_open(SerialDevice* serialdevice, const char* portdev) if (error != 0) { sloge("Error opening serial port"); + free(monocoque_serial_devices[i].portname); + monocoque_serial_devices[i].portname = NULL; monocoque_serial_devices[i].open = false; monocoque_serial_devices[i].openfail = true; return -1;