fix hw connect parsing

This commit is contained in:
Philippe Teuwen 2019-05-18 21:35:46 +02:00
parent d4ad0da335
commit f0ec37b742

View file

@ -498,23 +498,23 @@ static int CmdPing(const char *Cmd) {
static int CmdConnect(const char *Cmd) { static int CmdConnect(const char *Cmd) {
char *port= NULL;
uint32_t baudrate = USART_BAUD_RATE; uint32_t baudrate = USART_BAUD_RATE;
uint8_t cmdp = 0; uint8_t cmdp = 0;
char port[FILE_PATH_SIZE] = {0};
while (param_getchar(Cmd, cmdp) != 0x00) { while (param_getchar(Cmd, cmdp) != 0x00) {
switch (tolower(param_getchar(Cmd, cmdp))) { switch (tolower(param_getchar(Cmd, cmdp))) {
case 'h': case 'h':
return usage_hw_connect(); return usage_hw_connect();
case 'p': { case 'p': {
int bg, en; param_getstr(Cmd, cmdp + 1, port, sizeof(port));
if (param_getptr(Cmd, &bg, &en, cmdp + 1)) break;
port = (char *)Cmd + bg;
cmdp += 2; cmdp += 2;
break; break;
} }
case 'b': case 'b':
baudrate = param_get32ex(Cmd, cmdp + 1, USART_BAUD_RATE, 10); baudrate = param_get32ex(Cmd, cmdp + 1, USART_BAUD_RATE, 10);
if (baudrate == 0)
return usage_hw_connect();
cmdp += 2; cmdp += 2;
break; break;
default: default:
@ -524,17 +524,13 @@ static int CmdConnect(const char *Cmd) {
} }
// default back to previous used serial port // default back to previous used serial port
if (port == NULL || strlen(port) == 0) { if (strlen(port) == 0) {
int len = strlen((char *)conn.serial_port_name); if (strlen((char *)conn.serial_port_name) == 0) {
if (len == 0) {
return usage_hw_connect(); return usage_hw_connect();
} }
port = (char *)conn.serial_port_name; memcpy(port, conn.serial_port_name, sizeof(port));
} }
if (port == NULL)
return usage_hw_connect();
printf("Port:: %s Baud:: %u\n", port, baudrate); printf("Port:: %s Baud:: %u\n", port, baudrate);
if (session.pm3_present) { if (session.pm3_present) {