From 6e87964b28c2dbd61f8942315bc607b9fb4fbfea Mon Sep 17 00:00:00 2001 From: Cacodemon345 Date: Thu, 14 Mar 2024 16:14:06 +0600 Subject: [PATCH 1/2] net_modem: process '&' escaped commands properly --- src/network/net_modem.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/network/net_modem.c b/src/network/net_modem.c index 4c2985bda..bbbe2e37a 100644 --- a/src/network/net_modem.c +++ b/src/network/net_modem.c @@ -919,6 +919,7 @@ modem_do_command(modem_t* modem) } break; } + break; case '\\': { // \ escaped commands char cmdchar = modem_fetch_character(&scanbuf); switch (cmdchar) { From 0ce889e9ad0e8b54f8d88ebc58f79c50023cdc2b Mon Sep 17 00:00:00 2001 From: Cacodemon345 Date: Fri, 15 Mar 2024 02:46:00 +0600 Subject: [PATCH 2/2] net_modem.c: Fix memory leak --- src/network/net_modem.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/network/net_modem.c b/src/network/net_modem.c index bbbe2e37a..b1b6a2eca 100644 --- a/src/network/net_modem.c +++ b/src/network/net_modem.c @@ -1,4 +1,3 @@ - /* * 86Box A hypervisor and IBM PC system emulator that specializes in * running old operating systems and software designed for IBM @@ -323,9 +322,9 @@ send_tx_packet: buf[13] = 0x00; memcpy(buf + 14, processed_tx_packet, received); network_tx(modem->card, buf, received + 14); - free(processed_tx_packet); free(buf); } + free(processed_tx_packet); return; } @@ -530,6 +529,7 @@ modem_enter_connected_state(modem_t* modem) modem->connected = true; modem->tcpIpMode = true; modem->cooldown = true; + modem->tx_count = 0; plat_netsocket_close(modem->serversocket); modem->serversocket = -1; memset(&modem->telClient, 0, sizeof(modem->telClient));