Change sprintf to snprint in racal

https://github.com/Hamlib/Hamlib/issues/857
pull/928/head
Mike Black W9MDB 2022-01-11 16:34:29 -06:00
rodzic 20882cb18f
commit f463eef2cf
2 zmienionych plików z 43 dodań i 49 usunięć

Wyświetl plik

@ -81,7 +81,6 @@ static int ra37xx_one_transaction(RIG *rig, const char *cmd, char *data,
struct rig_state *rs = &rig->state;
char cmdbuf[BUFSZ];
char respbuf[BUFSZ];
int cmd_len;
int retval;
int pkt_header_len;
struct timeval tv;
@ -96,17 +95,17 @@ static int ra37xx_one_transaction(RIG *rig, const char *cmd, char *data,
if (priv->receiver_id != -1)
{
pkt_header_len = 2;
cmd_len = sprintf(cmdbuf, SOM "%d%s" EOM, priv->receiver_id, cmd);
SNPRINTF(cmdbuf, sizeof(cmdbuf), SOM "%d%s" EOM, priv->receiver_id, cmd);
}
else
{
pkt_header_len = 1;
cmd_len = sprintf(cmdbuf, SOM "%s" EOM, cmd);
SNPRINTF(cmdbuf, sizeof(cmdbuf), SOM "%s" EOM, cmd);
}
rig_flush(&rs->rigport);
retval = write_block(&rs->rigport, (unsigned char *) cmdbuf, cmd_len);
retval = write_block(&rs->rigport, (unsigned char *) cmdbuf, strlen(cmdbuf));
if (retval != RIG_OK)
{
@ -258,12 +257,10 @@ int ra37xx_cleanup(RIG *rig)
return RIG_OK;
}
/*
* Assumes rig!=NULL, rig->state.priv!=NULL
*/
int ra37xx_set_conf(RIG *rig, token_t token, const char *val)
int ra37xx_set_conf2(RIG *rig, token_t token, const char *val, int val_len)
{
struct ra37xx_priv_data *priv = (struct ra37xx_priv_data *)rig->state.priv;
int receiver_id;
@ -288,19 +285,24 @@ int ra37xx_set_conf(RIG *rig, token_t token, const char *val)
return RIG_OK;
}
int ra37xx_set_conf(RIG *rig, token_t token, const char *val)
{
return ra37xx_set_conf2(rig, token, val, 128);
}
/*
* assumes rig!=NULL,
* Assumes rig!=NULL, rig->state.priv!=NULL
* and val points to a buffer big enough to hold the conf value.
*/
int ra37xx_get_conf(RIG *rig, token_t token, char *val)
int ra37xx_get_conf2(RIG *rig, token_t token, char *val, int val_len)
{
struct ra37xx_priv_data *priv = (struct ra37xx_priv_data *)rig->state.priv;
switch (token)
{
case TOK_RIGID:
sprintf(val, "%d", priv->receiver_id);
SNPRINTF(val, val_len, "%d", priv->receiver_id);
break;
default:
@ -339,14 +341,8 @@ int ra37xx_close(RIG *rig)
int ra37xx_set_freq(RIG *rig, vfo_t vfo, freq_t freq)
{
char freqbuf[BUFSZ];
int freq_len;
freq_len = sprintf(freqbuf, "F%lu", (unsigned long)freq);
if (freq_len < 0)
{
return -RIG_ETRUNC;
}
SNPRINTF(freqbuf, sizeof(freqbuf), "F%lu", (unsigned long)freq);
return ra37xx_transaction(rig, freqbuf, NULL, NULL);
}
@ -417,9 +413,9 @@ int ra37xx_set_mode(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width)
#endif
#ifdef XXREMOVEDXX
sprintf(buf, "M%d;B%d,%d", ra_mode, widthtype, widthnum);
SNPRINTF(buf, sizeof(buf), "M%d;B%d,%d", ra_mode, widthtype, widthnum);
#else
sprintf(buf, "M%d", ra_mode);
SNPRINTF(buf, sizeof(buf), "M%d", ra_mode);
#endif
return ra37xx_transaction(rig, buf, NULL, NULL);
@ -473,7 +469,7 @@ int ra37xx_get_mode(RIG *rig, vfo_t vfo, rmode_t *mode, pbwidth_t *width)
/* FIXME */
widthnum = 0;
sprintf(buf, "QBCON%d,%d", widthtype, widthnum);
SNPRINTF(buf, sizeof(buf), "QBCON%d,%d", widthtype, widthnum);
retval = ra37xx_transaction(rig, buf, resbuf, &len);
if (retval != RIG_OK)
@ -494,7 +490,7 @@ int ra37xx_set_func(RIG *rig, vfo_t vfo, setting_t func, int status)
switch (func)
{
case RIG_FUNC_MUTE:
sprintf(cmdbuf, "MUTE%d", status ? 1 : 0);
SNPRINTF(cmdbuf, sizeof(cmdbuf), "MUTE%d", status ? 1 : 0);
break;
default:
@ -546,23 +542,23 @@ int ra37xx_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val)
switch (level)
{
case RIG_LEVEL_AF:
sprintf(cmdbuf, "AFL%d", (int)(val.f * 255));
SNPRINTF(cmdbuf, sizeof(cmdbuf), "AFL%d", (int)(val.f * 255));
break;
case RIG_LEVEL_PREAMP:
sprintf(cmdbuf, "RFAMP%d", val.i ? 1 : 0);
SNPRINTF(cmdbuf, sizeof(cmdbuf), "RFAMP%d", val.i ? 1 : 0);
break;
case RIG_LEVEL_CWPITCH: /* BFO */
sprintf(cmdbuf, "BFO%d", val.i);
SNPRINTF(cmdbuf, sizeof(cmdbuf), "BFO%d", val.i);
break;
case RIG_LEVEL_SQL:
sprintf(cmdbuf, "CORL%d", (int)(val.f * 255));
SNPRINTF(cmdbuf, sizeof(cmdbuf), "CORL%d", (int)(val.f * 255));
break;
case RIG_LEVEL_RF:
sprintf(cmdbuf, "G%d", (int)(val.f * 255));
SNPRINTF(cmdbuf, sizeof(cmdbuf), "G%d", (int)(val.f * 255));
break;
case RIG_LEVEL_AGC:
@ -579,7 +575,7 @@ int ra37xx_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val)
default: return -RIG_EINVAL;
}
sprintf(cmdbuf, "AGC%d,%d", val.i == RIG_AGC_USER ? 1 : 0, agc);
SNPRINTF(cmdbuf, sizeof(cmdbuf), "AGC%d,%d", val.i == RIG_AGC_USER ? 1 : 0, agc);
break;
default:
@ -748,7 +744,7 @@ int ra37xx_set_ant(RIG *rig, vfo_t vfo, ant_t ant, value_t option)
return -RIG_EINVAL;
}
sprintf(buf, "ANT%d", i_ant);
SNPRINTF(buf, sizeof(buf), "ANT%d", i_ant);
return ra37xx_transaction(rig, buf, NULL, NULL);
}
@ -787,7 +783,7 @@ int ra37xx_set_mem(RIG *rig, vfo_t vfo, int ch)
/* NB: does a RIG_OP_TO_VFO!*/
sprintf(buf, "CHAN%d", ch);
SNPRINTF(buf, sizeof(buf), "CHAN%d", ch);
return ra37xx_transaction(rig, buf, NULL, NULL);
}
@ -827,7 +823,7 @@ int ra37xx_scan(RIG *rig, vfo_t vfo, scan_t scan, int ch)
return -RIG_EINVAL;
}
sprintf(buf, "SCAN%d,0", scantype);
SNPRINTF(buf, sizeof(buf), "SCAN%d,0", scantype);
return ra37xx_transaction(rig, buf, NULL, NULL);
}
@ -847,7 +843,7 @@ int ra37xx_vfo_op(RIG *rig, vfo_t vfo, vfo_op_t op)
return ret;
}
sprintf(buf, "STRE%d", ch);
SNPRINTF(buf, sizeof(buf), "STRE%d", ch);
return ra37xx_transaction(rig, buf, NULL, NULL);
case RIG_OP_TO_VFO:
@ -858,7 +854,7 @@ int ra37xx_vfo_op(RIG *rig, vfo_t vfo, vfo_op_t op)
return ret;
}
sprintf(buf, "CHAN%d", ch);
SNPRINTF(buf, sizeof(buf), "CHAN%d", ch);
return ra37xx_transaction(rig, buf, NULL, NULL);
default:

Wyświetl plik

@ -79,14 +79,13 @@ static int racal_transaction(RIG *rig, const char *cmd, char *data,
struct racal_priv_data *priv = (struct racal_priv_data *)rig->state.priv;
struct rig_state *rs = &rig->state;
char cmdbuf[BUFSZ + 1];
int cmd_len;
int retval;
cmd_len = sprintf(cmdbuf, SOM "%u%s" EOM, priv->receiver_id, cmd);
SNPRINTF(cmdbuf, sizeof(cmdbuf), SOM "%u%s" EOM, priv->receiver_id, cmd);
rig_flush(&rs->rigport);
retval = write_block(&rs->rigport, (unsigned char *) cmdbuf, cmd_len);
retval = write_block(&rs->rigport, (unsigned char *) cmdbuf, strlen(cmdbuf));
if (retval != RIG_OK)
{
@ -192,14 +191,14 @@ int racal_set_conf(RIG *rig, token_t token, const char *val)
* Assumes rig!=NULL, rig->state.priv!=NULL
* and val points to a buffer big enough to hold the conf value.
*/
int racal_get_conf(RIG *rig, token_t token, char *val)
int racal_get_conf2(RIG *rig, token_t token, char *val, int val_len)
{
struct racal_priv_data *priv = (struct racal_priv_data *)rig->state.priv;
switch (token)
{
case TOK_RIGID:
sprintf(val, "%u", priv->receiver_id);
SNPRINTF(val, val_len, "%u", priv->receiver_id);
break;
default:
@ -209,6 +208,11 @@ int racal_get_conf(RIG *rig, token_t token, char *val)
return RIG_OK;
}
int racal_get_conf(RIG *rig, token_t token, char *val)
{
return racal_get_conf2(rig, token, val, 128);
}
/*
* racal_open
* Assumes rig!=NULL
@ -242,14 +246,8 @@ int racal_close(RIG *rig)
int racal_set_freq(RIG *rig, vfo_t vfo, freq_t freq)
{
char freqbuf[BUFSZ];
int freq_len;
freq_len = sprintf(freqbuf, "F%0g", (double)(freq / MHz(1)));
if (freq_len < 0)
{
return -RIG_ETRUNC;
}
SNPRINTF(freqbuf, sizeof(freqbuf), "F%0g", (double)(freq / MHz(1)));
return racal_transaction(rig, freqbuf, NULL, NULL);
}
@ -315,11 +313,11 @@ int racal_set_mode(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width)
width = rig_passband_normal(rig, mode);
}
sprintf(buf, "D%dI%.0f", ra_mode, (double)(width / kHz(1)));
SNPRINTF(buf, sizeof(buf), "D%dI%.0f", ra_mode, (double)(width / kHz(1)));
}
else
{
sprintf(buf, "D%d", ra_mode);
SNPRINTF(buf, sizeof(buf), "D%d", ra_mode);
}
return racal_transaction(rig, buf, NULL, NULL);
@ -388,12 +386,12 @@ int racal_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val)
{
case RIG_LEVEL_RF:
/* Manually set threshold */
sprintf(cmdbuf, "A%d", (int)(val.f * 120));
SNPRINTF(cmdbuf, sizeof(cmdbuf), "A%d", (int)(val.f * 120));
priv->threshold = val.f;
break;
case RIG_LEVEL_IF:
sprintf(cmdbuf, "B%+0g", ((double)val.i) / kHz(1));
SNPRINTF(cmdbuf, sizeof(cmdbuf), "B%+0g", ((double)val.i) / kHz(1));
priv->bfo = val.i;
break;
@ -416,7 +414,7 @@ int racal_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val)
agc += 4; /* with manually set threshold */
}
sprintf(cmdbuf, "M%d", agc);
SNPRINTF(cmdbuf, sizeof(cmdbuf), "M%d", agc);
break;
default:
@ -564,7 +562,7 @@ const char *racal_get_info(RIG *rig)
strcpy(filterbuf, "IO error");
}
sprintf(infobuf, "BITE errors: %s, Filters: %s\n",
SNPRINTF(infobuf, sizeof(infobuf), "BITE errors: %s, Filters: %s\n",
bitebuf + 1, filterbuf);
return infobuf;