Fix responsebuf usage in kpa.c

pull/799/head
Mike Black W9MDB 2021-09-11 05:10:07 -05:00
rodzic 2b3ec3f4bd
commit 04b0e6e40c
1 zmienionych plików z 7 dodań i 6 usunięć

Wyświetl plik

@ -106,7 +106,6 @@ int kpa_transaction(AMP *amp, const char *cmd, char *response, int response_len)
struct amp_state *rs; struct amp_state *rs;
int err; int err;
int len = 0; int len = 0;
char responsebuf[KPABUFSZ];
int loop; int loop;
rig_debug(RIG_DEBUG_VERBOSE, "%s called, cmd=%s\n", __func__, cmd); rig_debug(RIG_DEBUG_VERBOSE, "%s called, cmd=%s\n", __func__, cmd);
@ -127,11 +126,11 @@ int kpa_transaction(AMP *amp, const char *cmd, char *response, int response_len)
if (err != RIG_OK) { return err; } if (err != RIG_OK) { return err; }
len = read_string(&rs->ampport, responsebuf, KPABUFSZ, ";", 1); len = read_string(&rs->ampport, response, response_len, ";", 1);
if (len < 0) { return len; } if (len < 0) { return len; }
} }
while (--loop > 0 && (len != 1 || responsebuf[0] != ';')); while (--loop > 0 && (len != 1 || response[0] != ';'));
// Now send our command // Now send our command
err = write_block(&rs->ampport, cmd, strlen(cmd)); err = write_block(&rs->ampport, cmd, strlen(cmd));
@ -140,8 +139,8 @@ int kpa_transaction(AMP *amp, const char *cmd, char *response, int response_len)
if (response) // if response expected get it if (response) // if response expected get it
{ {
responsebuf[0] = 0; response[0] = 0;
len = read_string(&rs->ampport, responsebuf, KPABUFSZ, ";", 1); len = read_string(&rs->ampport, response, response_len, ";", 1);
if (len < 0) if (len < 0)
{ {
@ -151,10 +150,12 @@ int kpa_transaction(AMP *amp, const char *cmd, char *response, int response_len)
} }
rig_debug(RIG_DEBUG_VERBOSE, "%s called, response='%s'\n", __func__, rig_debug(RIG_DEBUG_VERBOSE, "%s called, response='%s'\n", __func__,
responsebuf); response);
} }
else // if no response expected try to get one else // if no response expected try to get one
{ {
char responsebuf[KPABUFSZ];
responsebuf[0] = 0;
loop = 3; loop = 3;
do do