From a57b9ddf3176aebc736f0dd32b7fbbb16ef5c368 Mon Sep 17 00:00:00 2001 From: YuanHongbin <975559679@qq.com> Date: Wed, 17 Jun 2026 17:47:12 +0800 Subject: [PATCH] =?UTF-8?q?fix(debug):=20=E4=BF=AE=E5=A4=8D=E8=B0=83?= =?UTF-8?q?=E8=AF=95=E5=91=BD=E4=BB=A4=E5=8F=82=E6=95=B0=E6=A3=80=E6=9F=A5?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DebugCmd.c | 34 +++++++++++++++++++++++++++++++--- 1 file changed, 31 insertions(+), 3 deletions(-) diff --git a/DebugCmd.c b/DebugCmd.c index 96bc20a..2495bee 100644 --- a/DebugCmd.c +++ b/DebugCmd.c @@ -914,7 +914,7 @@ void DebugCmdRestoreFactory(int argc, char *argv[]) static void DebugCmdUpload(int argc, char *argv[]) { DBG_LOG("\r\n"); - if(strcmp(argv[1], "?") == 0) { + if(argc > 1 && strcmp(argv[1], "?") == 0) { DBG_LOG("Debug Cmd: up\r\n"); DBG_LOG(" brief --> Upload current gateway status to server.\r\n\r\n"); return; @@ -953,7 +953,7 @@ static void DebugCmdUpload(int argc, char *argv[]) static void DebugCmdRegister(int argc, char *argv[]) { DBG_LOG("\r\n"); - if(strcmp(argv[1], "?") == 0) { + if(argc > 1 && strcmp(argv[1], "?") == 0) { DBG_LOG("Debug Cmd: reg\r\n"); DBG_LOG(" brief --> Re-register to the server.\r\n\r\n"); return; @@ -1336,8 +1336,8 @@ static void DebugCmdEthNet(int argc, char *argv[]) DBG_LOG("Please switch to ETH mode first using 'comm eth' command.\r\n"); return; } + GateWay->SvrRegFlag = false; ETHReset(); - ETHResetEx(); DBG_LOG("EthNet parameters saved and ETH module restarting...\r\n"); return; } @@ -1363,6 +1363,10 @@ static void DebugCmdEthNet(int argc, char *argv[]) } if(strcmp(argv[1], "ip") == 0) { + if(argc < 3) { + DBG_LOG("EthCmd: Missing IP address\r\n"); + return; + } int ret = sscanf(argv[2], "%d.%d.%d.%d", &IP[0], &IP[1], &IP[2], &IP[3]); if(ret != 4) { DBG_LOG("EthCmd: Invalid IP format, use x.x.x.x\r\n"); @@ -1381,6 +1385,10 @@ static void DebugCmdEthNet(int argc, char *argv[]) } if(strcmp(argv[1], "port") == 0) { + if(argc < 3) { + DBG_LOG("EthCmd: Missing port number\r\n"); + return; + } int port = atoi(argv[2]); if(port <= 0 || port > 65535) { DBG_LOG("EthCmd: Port out of range (1-65535).\r\n"); @@ -1392,6 +1400,10 @@ static void DebugCmdEthNet(int argc, char *argv[]) } if(strcmp(argv[1], "wmode") == 0) { + if(argc < 3) { + DBG_LOG("EthCmd: Missing work mode (tcp/udp)\r\n"); + return; + } if(strcmp(argv[2], "tcp") == 0) { GateWay->ConfigPara.EthNet.WorkMode = ETH_MODE_TCP_CLIENT; DBG_LOG("WorkMode set to TCP_CLIENT.\r\n"); @@ -1407,6 +1419,10 @@ static void DebugCmdEthNet(int argc, char *argv[]) } if(strcmp(argv[1], "mask") == 0) { + if(argc < 3) { + DBG_LOG("EthCmd: Missing subnet mask\r\n"); + return; + } int ret = sscanf(argv[2], "%d.%d.%d.%d", &IP[0], &IP[1], &IP[2], &IP[3]); if(ret != 4) { DBG_LOG("EthCmd: Invalid mask format, use x.x.x.x\r\n"); @@ -1425,6 +1441,10 @@ static void DebugCmdEthNet(int argc, char *argv[]) } if(strcmp(argv[1], "gw") == 0) { + if(argc < 3) { + DBG_LOG("EthCmd: Missing gateway address\r\n"); + return; + } int ret = sscanf(argv[2], "%d.%d.%d.%d", &IP[0], &IP[1], &IP[2], &IP[3]); if(ret != 4) { DBG_LOG("EthCmd: Invalid gateway format, use x.x.x.x\r\n"); @@ -1443,6 +1463,10 @@ static void DebugCmdEthNet(int argc, char *argv[]) } if(strcmp(argv[1], "dip") == 0) { + if(argc < 3) { + DBG_LOG("EthCmd: Missing destination IP address\r\n"); + return; + } int ret = sscanf(argv[2], "%d.%d.%d.%d", &IP[0], &IP[1], &IP[2], &IP[3]); if(ret != 4) { DBG_LOG("EthCmd: Invalid destination IP format, use x.x.x.x\r\n"); @@ -1461,6 +1485,10 @@ static void DebugCmdEthNet(int argc, char *argv[]) } if(strcmp(argv[1], "dport") == 0) { + if(argc < 3) { + DBG_LOG("EthCmd: Missing destination port\r\n"); + return; + } int port = atoi(argv[2]); if(port <= 0 || port > 65535) { DBG_LOG("EthCmd: DestPort out of range (1-65535).\r\n");