diff --git a/rigs/jrc/jrc.c b/rigs/jrc/jrc.c index bf744c2ca..6ca15bcc6 100644 --- a/rigs/jrc/jrc.c +++ b/rigs/jrc/jrc.c @@ -289,7 +289,6 @@ int jrc_set_freq(RIG *rig, vfo_t vfo, freq_t freq) { struct jrc_priv_caps *priv = (struct jrc_priv_caps *)rig->caps->priv; char freqbuf[BUFSZ]; - int freq_len; if (freq >= (freq_t)pow(10, priv->max_freq_len)) { @@ -298,9 +297,9 @@ int jrc_set_freq(RIG *rig, vfo_t vfo, freq_t freq) // cppcheck-suppress * // suppressing bogus cppcheck error in ver 1.90 - freq_len = sprintf(freqbuf, "F%0*"PRIll EOM, priv->max_freq_len, (int64_t)freq); + SNPRINTF(freqbuf, sizeof(freqbuf), "F%0*"PRIll EOM, priv->max_freq_len, (int64_t)freq); - return jrc_transaction(rig, freqbuf, freq_len, NULL, NULL); + return jrc_transaction(rig, freqbuf, strlen(freqbuf), NULL, NULL); } static int get_current_istate(RIG *rig, char *buf, int *buf_len) @@ -329,8 +328,9 @@ static int get_current_istate(RIG *rig, char *buf, int *buf_len) int jrc_get_freq(RIG *rig, vfo_t vfo, freq_t *freq) { struct jrc_priv_caps *priv = (struct jrc_priv_caps *)rig->caps->priv; - int freq_len, retval; + int retval; char freqbuf[BUFSZ]; + int freq_len; //note: JRCs use "I" to get information retval = get_current_istate(rig, freqbuf, &freq_len); @@ -363,7 +363,7 @@ int jrc_get_freq(RIG *rig, vfo_t vfo, freq_t *freq) int jrc_set_vfo(RIG *rig, vfo_t vfo) { unsigned char cmdbuf[16]; - int cmd_len, retval; + int retval; char vfo_function; switch (vfo) @@ -378,9 +378,9 @@ int jrc_set_vfo(RIG *rig, vfo_t vfo) return -RIG_EINVAL; } - cmd_len = sprintf((char *) cmdbuf, "%c" EOM, vfo_function); + SNPRINTF((char *) cmdbuf, sizeof(cmdbuf), "%c" EOM, vfo_function); - retval = jrc_transaction(rig, (char *) cmdbuf, cmd_len, NULL, NULL); + retval = jrc_transaction(rig, (char *) cmdbuf, strlen((char*)cmdbuf), NULL, NULL); return retval; } @@ -393,7 +393,7 @@ int jrc_set_vfo(RIG *rig, vfo_t vfo) int jrc_set_mode(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width) { char mdbuf[BUFSZ]; - int retval, mdbuf_len; + int retval; char amode, awidth; retval = rig2jrc_mode(rig, mode, width, &amode, &awidth); @@ -403,8 +403,8 @@ int jrc_set_mode(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width) return retval; } - mdbuf_len = sprintf(mdbuf, "D" "%c" EOM, amode); - retval = jrc_transaction(rig, mdbuf, mdbuf_len, NULL, NULL); + SNPRINTF(mdbuf, sizeof(mdbuf), "D" "%c" EOM, amode); + retval = jrc_transaction(rig, mdbuf, strlen(mdbuf), NULL, NULL); if (retval != RIG_OK) { @@ -413,8 +413,8 @@ int jrc_set_mode(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width) if (width != RIG_PASSBAND_NOCHANGE) { - mdbuf_len = sprintf(mdbuf, "B" "%c" EOM, awidth); - retval = jrc_transaction(rig, mdbuf, mdbuf_len, NULL, NULL); + SNPRINTF(mdbuf, sizeof(mdbuf), "B" "%c" EOM, awidth); + retval = jrc_transaction(rig, mdbuf, strlen(mdbuf), NULL, NULL); if (retval != RIG_OK) { @@ -469,7 +469,6 @@ int jrc_get_mode(RIG *rig, vfo_t vfo, rmode_t *mode, pbwidth_t *width) */ int jrc_set_func(RIG *rig, vfo_t vfo, setting_t func, int status) { - int cmd_len; char cmdbuf[BUFSZ]; /* Optimize: @@ -479,38 +478,38 @@ int jrc_set_func(RIG *rig, vfo_t vfo, setting_t func, int status) { case RIG_FUNC_FAGC: /* FIXME: FAGC levels */ - cmd_len = sprintf(cmdbuf, "G%d" EOM, status ? 1 : 2); + SNPRINTF(cmdbuf, sizeof(cmdbuf), "G%d" EOM, status ? 1 : 2); - return jrc_transaction(rig, cmdbuf, cmd_len, NULL, NULL); + return jrc_transaction(rig, cmdbuf, strlen(cmdbuf), NULL, NULL); case RIG_FUNC_NB: /* FIXME: NB1 and NB2 */ - cmd_len = sprintf(cmdbuf, "N%d" EOM, status ? 1 : 0); + SNPRINTF(cmdbuf, sizeof(cmdbuf), "N%d" EOM, status ? 1 : 0); - return jrc_transaction(rig, cmdbuf, cmd_len, NULL, NULL); + return jrc_transaction(rig, cmdbuf, strlen(cmdbuf), NULL, NULL); /* * FIXME: which BB mode for NR and BC at same time ? */ case RIG_FUNC_NR: - cmd_len = sprintf(cmdbuf, "BB%d" EOM, status ? 1 : 0); + SNPRINTF(cmdbuf, sizeof(cmdbuf), "BB%d" EOM, status ? 1 : 0); - return jrc_transaction(rig, cmdbuf, cmd_len, NULL, NULL); + return jrc_transaction(rig, cmdbuf, strlen(cmdbuf), NULL, NULL); case RIG_FUNC_BC: - cmd_len = sprintf(cmdbuf, "BB%d" EOM, status ? 2 : 0); + SNPRINTF(cmdbuf, sizeof(cmdbuf), "BB%d" EOM, status ? 2 : 0); - return jrc_transaction(rig, cmdbuf, cmd_len, NULL, NULL); + return jrc_transaction(rig, cmdbuf, strlen(cmdbuf), NULL, NULL); case RIG_FUNC_LOCK: - cmd_len = sprintf(cmdbuf, "DD%d" EOM, status ? 1 : 0); + SNPRINTF(cmdbuf, sizeof(cmdbuf), "DD%d" EOM, status ? 1 : 0); - return jrc_transaction(rig, cmdbuf, cmd_len, NULL, NULL); + return jrc_transaction(rig, cmdbuf, strlen(cmdbuf), NULL, NULL); case RIG_FUNC_MN: - cmd_len = sprintf(cmdbuf, "EE%d" EOM, status ? 1 : 0); + SNPRINTF(cmdbuf, sizeof(cmdbuf), "EE%d" EOM, status ? 1 : 0); - return jrc_transaction(rig, cmdbuf, cmd_len, NULL, NULL); + return jrc_transaction(rig, cmdbuf, strlen(cmdbuf), NULL, NULL); default: rig_debug(RIG_DEBUG_ERR, "Unsupported set_func %s\n", rig_strfunc(func)); @@ -675,7 +674,6 @@ int jrc_get_func(RIG *rig, vfo_t vfo, setting_t func, int *status) int jrc_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val) { struct jrc_priv_caps *priv = (struct jrc_priv_caps *)rig->caps->priv; - int cmd_len; char cmdbuf[BUFSZ]; /* Optimize: @@ -684,42 +682,42 @@ int jrc_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val) switch (level) { case RIG_LEVEL_ATT: - cmd_len = sprintf(cmdbuf, "A%d" EOM, val.i ? 1 : 0); + SNPRINTF(cmdbuf, sizeof(cmdbuf), "A%d" EOM, val.i ? 1 : 0); - return jrc_transaction(rig, cmdbuf, cmd_len, NULL, NULL); + return jrc_transaction(rig, cmdbuf, strlen(cmdbuf), NULL, NULL); case RIG_LEVEL_RF: - cmd_len = sprintf(cmdbuf, "HH%03d" EOM, (int)(val.f * 255.0)); + SNPRINTF(cmdbuf, sizeof(cmdbuf), "HH%03d" EOM, (int)(val.f * 255.0)); - return jrc_transaction(rig, cmdbuf, cmd_len, NULL, NULL); + return jrc_transaction(rig, cmdbuf, strlen(cmdbuf), NULL, NULL); case RIG_LEVEL_AF: - cmd_len = sprintf(cmdbuf, "JJ%03d" EOM, (int)(val.f * 255.0)); + SNPRINTF(cmdbuf, sizeof(cmdbuf), "JJ%03d" EOM, (int)(val.f * 255.0)); - return jrc_transaction(rig, cmdbuf, cmd_len, NULL, NULL); + return jrc_transaction(rig, cmdbuf, strlen(cmdbuf), NULL, NULL); case RIG_LEVEL_SQL: - cmd_len = sprintf(cmdbuf, "LL%03d" EOM, (int)(val.f * 255.0)); + SNPRINTF(cmdbuf, sizeof(cmdbuf), "LL%03d" EOM, (int)(val.f * 255.0)); - return jrc_transaction(rig, cmdbuf, cmd_len, NULL, NULL); + return jrc_transaction(rig, cmdbuf, strlen(cmdbuf), NULL, NULL); case RIG_LEVEL_NR: - cmd_len = sprintf(cmdbuf, "FF%03d" EOM, (int)(val.f * 255.0)); + SNPRINTF(cmdbuf, sizeof(cmdbuf), "FF%03d" EOM, (int)(val.f * 255.0)); - return jrc_transaction(rig, cmdbuf, cmd_len, NULL, NULL); + return jrc_transaction(rig, cmdbuf, strlen(cmdbuf), NULL, NULL); #if 0 case RIG_LEVEL_TONE: - cmd_len = sprintf(cmdbuf, "KK%03d" EOM, (int)(val.f * 255.0)); + SNPRINTF(cmdbuf, sizeof(cmdbuf), "KK%03d" EOM, (int)(val.f * 255.0)); - return jrc_transaction(rig, cmdbuf, cmd_len, NULL, NULL); + return jrc_transaction(rig, cmdbuf, strlen(cmdbuf), NULL, NULL); #endif case RIG_LEVEL_NOTCHF: - cmd_len = sprintf(cmdbuf, "GG%+04d" EOM, val.i); + SNPRINTF(cmdbuf, sizeof(cmdbuf), "GG%+04d" EOM, val.i); - return jrc_transaction(rig, cmdbuf, cmd_len, NULL, NULL); + return jrc_transaction(rig, cmdbuf, strlen(cmdbuf), NULL, NULL); #if 0 @@ -729,27 +727,29 @@ int jrc_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val) val.i /= 10; } - cmd_len = sprintf(cmdbuf, "W%0*d" EOM, priv->pbs_len, val.i); + SNPRINTF(cmdbuf, sizeof(cmdbuf), "W%0*d" EOM, priv->pbs_len, val.i); - return jrc_transaction(rig, cmdbuf, cmd_len, NULL, NULL); + return jrc_transaction(rig, cmdbuf, strlen(cmdbuf), NULL, NULL); #endif case RIG_LEVEL_AGC: if (val.i < 10) - cmd_len = sprintf(cmdbuf, "G%d" EOM, + { + snprintf(cmdbuf, sizeof(cmdbuf), "G%d" EOM, val.i == RIG_AGC_SLOW ? 0 : val.i == RIG_AGC_FAST ? 1 : 2); + } else { - cmd_len = sprintf(cmdbuf, "G3%03d" EOM, val.i / 20); + SNPRINTF(cmdbuf, sizeof(cmdbuf), "G3%03d" EOM, val.i / 20); } - return jrc_transaction(rig, cmdbuf, cmd_len, NULL, NULL); + return jrc_transaction(rig, cmdbuf, strlen(cmdbuf), NULL, NULL); case RIG_LEVEL_CWPITCH: - cmd_len = sprintf(cmdbuf, "%s%+05d" EOM, priv->cw_pitch, val.i); + SNPRINTF(cmdbuf, sizeof(cmdbuf), "%s%+05d" EOM, priv->cw_pitch, val.i); - return jrc_transaction(rig, cmdbuf, cmd_len, NULL, NULL); + return jrc_transaction(rig, cmdbuf, strlen(cmdbuf), NULL, NULL); case RIG_LEVEL_IF: if (priv->pbs_len == 3) @@ -757,9 +757,9 @@ int jrc_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val) val.i /= 10; } - cmd_len = sprintf(cmdbuf, "P%+0*d" EOM, priv->pbs_len + 1, val.i); + SNPRINTF(cmdbuf, sizeof(cmdbuf), "P%+0*d" EOM, priv->pbs_len + 1, val.i); - return jrc_transaction(rig, cmdbuf, cmd_len, NULL, NULL); + return jrc_transaction(rig, cmdbuf, strlen(cmdbuf), NULL, NULL); default: rig_debug(RIG_DEBUG_ERR, "%s: unsupported set_level %s\n", __func__, @@ -1041,9 +1041,10 @@ int jrc_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val) #endif case RIG_LEVEL_CWPITCH: - cw_len = sprintf(cwbuf, "%s" EOM, priv->cw_pitch); - - retval = jrc_transaction(rig, cwbuf, cw_len, lvlbuf, &lvl_len); + SNPRINTF(cwbuf, sizeof(cwbuf), "%s" EOM, priv->cw_pitch); + cw_len = strlen(cwbuf); + + retval = jrc_transaction(rig, cwbuf, strlen(cwbuf), lvlbuf, &lvl_len); if (retval != RIG_OK) { @@ -1103,7 +1104,6 @@ int jrc_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val) int jrc_set_parm(RIG *rig, setting_t parm, value_t val) { struct jrc_priv_caps *priv = (struct jrc_priv_caps *)rig->caps->priv; - int cmd_len; char cmdbuf[BUFSZ]; int minutes; @@ -1113,23 +1113,23 @@ int jrc_set_parm(RIG *rig, setting_t parm, value_t val) switch (parm) { case RIG_PARM_BACKLIGHT: - cmd_len = sprintf(cmdbuf, "AA%d" EOM, val.f > 0.5 ? 0 : 1); + SNPRINTF(cmdbuf, sizeof(cmdbuf), "AA%d" EOM, val.f > 0.5 ? 0 : 1); - return jrc_transaction(rig, cmdbuf, cmd_len, NULL, NULL); + return jrc_transaction(rig, cmdbuf, strlen(cmdbuf), NULL, NULL); case RIG_PARM_BEEP: - cmd_len = sprintf(cmdbuf, "U%0*d" EOM, priv->beep_len, + SNPRINTF(cmdbuf, sizeof(cmdbuf), "U%0*d" EOM, priv->beep_len, (priv->beep + val.i) ? 1 : 0); - return jrc_transaction(rig, cmdbuf, cmd_len, NULL, NULL); + return jrc_transaction(rig, cmdbuf, strlen(cmdbuf), NULL, NULL); case RIG_PARM_TIME: minutes = val.i / 60; - cmd_len = sprintf(cmdbuf, "R1%02d%02d" EOM, + SNPRINTF(cmdbuf, sizeof(cmdbuf), "R1%02d%02d" EOM, minutes / 60, minutes % 60); - return jrc_transaction(rig, cmdbuf, cmd_len, NULL, NULL); + return jrc_transaction(rig, cmdbuf, strlen(cmdbuf), NULL, NULL); default: rig_debug(RIG_DEBUG_ERR, "%s: unsupported set_parm %s\n", __func__, @@ -1150,7 +1150,6 @@ int jrc_get_parm(RIG *rig, setting_t parm, value_t *val) int retval, lvl_len, i; char lvlbuf[BUFSZ]; char cmdbuf[BUFSZ]; - int cmd_len; /* Optimize: * sort the switch cases with the most frequent first @@ -1185,8 +1184,8 @@ int jrc_get_parm(RIG *rig, setting_t parm, value_t *val) break; case RIG_PARM_BEEP: - cmd_len = sprintf(cmdbuf, "U%d" EOM, priv->beep / 10); - retval = jrc_transaction(rig, cmdbuf, cmd_len, lvlbuf, &lvl_len); + SNPRINTF(cmdbuf, sizeof(cmdbuf), "U%d" EOM, priv->beep / 10); + retval = jrc_transaction(rig, cmdbuf, strlen(cmdbuf), lvlbuf, &lvl_len); if (retval != RIG_OK) { @@ -1263,11 +1262,10 @@ int jrc_set_trn(RIG *rig, int trn) int jrc_set_powerstat(RIG *rig, powerstat_t status) { char pwrbuf[BUFSZ]; - int pwr_len; - pwr_len = sprintf(pwrbuf, "T%d" EOM, status == RIG_POWER_ON ? 1 : 0); + SNPRINTF(pwrbuf, sizeof(pwrbuf), "T%d" EOM, status == RIG_POWER_ON ? 1 : 0); - return jrc_transaction(rig, pwrbuf, pwr_len, NULL, NULL); + return jrc_transaction(rig, pwrbuf, strlen(pwrbuf), NULL, NULL); } /* @@ -1317,7 +1315,6 @@ int jrc_get_powerstat(RIG *rig, powerstat_t *status) int jrc_reset(RIG *rig, reset_t reset) { char rstbuf[BUFSZ]; - int rst_len; char rst; switch (reset) @@ -1334,9 +1331,9 @@ int jrc_reset(RIG *rig, reset_t reset) return -RIG_EINVAL; } - rst_len = sprintf(rstbuf, "Z%c" EOM, rst); + SNPRINTF(rstbuf, sizeof(rstbuf), "Z%c" EOM, rst); - return jrc_transaction(rig, rstbuf, rst_len, NULL, NULL); + return jrc_transaction(rig, rstbuf, strlen(rstbuf), NULL, NULL); } /* @@ -1347,18 +1344,18 @@ int jrc_set_mem(RIG *rig, vfo_t vfo, int ch) { char cmdbuf[BUFSZ]; char membuf[BUFSZ]; - int cmd_len, mem_len; + int mem_len; if (ch < 0 || ch > rig->caps->chan_list[0].endc) { return -RIG_EINVAL; } - cmd_len = sprintf(cmdbuf, "C%03d" EOM, ch); + SNPRINTF(cmdbuf, sizeof(cmdbuf), "C%03d" EOM, ch); /* don't care about the Automatic response from receiver */ - return jrc_transaction(rig, cmdbuf, cmd_len, membuf, &mem_len); + return jrc_transaction(rig, cmdbuf, strlen(cmdbuf), membuf, &mem_len); } /* @@ -1404,7 +1401,7 @@ int jrc_set_chan(RIG *rig, vfo_t vfo, const channel_t *chan) { struct jrc_priv_caps *priv = (struct jrc_priv_caps *)rig->caps->priv; char cmdbuf[BUFSZ]; - int retval, cmd_len; + int retval; rmode_t mode; pbwidth_t width; channel_t current; @@ -1414,7 +1411,7 @@ int jrc_set_chan(RIG *rig, vfo_t vfo, const channel_t *chan) if ((retval = jrc_get_chan(rig, vfo, ¤t, 1)) != RIG_OK) { return retval; } - sprintf(cmdbuf, "K%03d000", chan->channel_num); + SNPRINTF(cmdbuf, sizeof(cmdbuf), "K%03d000", chan->channel_num); if (chan->levels[rig_setting2idx(RIG_LEVEL_ATT)].i == 20) { @@ -1435,7 +1432,7 @@ int jrc_set_chan(RIG *rig, vfo_t vfo, const channel_t *chan) return retval; } - sprintf(cmdbuf + 7, "%0*"PRIll, priv->max_freq_len, (int64_t)chan->freq); + SNPRINTF(cmdbuf + 7, sizeof(cmdbuf)-7, "%0*"PRIll, priv->max_freq_len, (int64_t)chan->freq); if (priv->mem_len == 17) { @@ -1452,12 +1449,11 @@ int jrc_set_chan(RIG *rig, vfo_t vfo, const channel_t *chan) } else { - sprintf(cmdbuf + priv->mem_len - 4, "%03d", + SNPRINTF(cmdbuf + priv->mem_len - 4, sizeof(cmdbuf)-(priv->mem_len - 4), "%03d", chan->levels[rig_setting2idx(RIG_LEVEL_AGC)].i); } - cmd_len = priv->mem_len; - return jrc_transaction(rig, cmdbuf, cmd_len, NULL, NULL); + return jrc_transaction(rig, cmdbuf, strlen(cmdbuf), NULL, NULL); } /* @@ -1468,7 +1464,7 @@ int jrc_get_chan(RIG *rig, vfo_t vfo, channel_t *chan, int read_only) { struct jrc_priv_caps *priv = (struct jrc_priv_caps *)rig->caps->priv; char membuf[BUFSZ], cmdbuf[BUFSZ]; - int mem_len, cmd_len, retval; + int mem_len, retval; chan->vfo = RIG_VFO_MEM; chan->ant = RIG_ANT_NONE; @@ -1496,9 +1492,9 @@ int jrc_get_chan(RIG *rig, vfo_t vfo, channel_t *chan, int read_only) chan->flags = RIG_CHFLAG_SKIP; strcpy(chan->channel_desc, ""); - cmd_len = sprintf(cmdbuf, "L%03d%03d" EOM, chan->channel_num, + SNPRINTF(cmdbuf, sizeof(cmdbuf), "L%03d%03d" EOM, chan->channel_num, chan->channel_num); - retval = jrc_transaction(rig, cmdbuf, cmd_len, membuf, &mem_len); + retval = jrc_transaction(rig, cmdbuf, strlen(cmdbuf), membuf, &mem_len); if (retval != RIG_OK) { diff --git a/rigs/jrc/jst145.c b/rigs/jrc/jst145.c index 184c13730..9b97272c4 100644 --- a/rigs/jrc/jst145.c +++ b/rigs/jrc/jst145.c @@ -551,7 +551,7 @@ static int jst145_set_mem(RIG *rig, vfo_t vfo, int ch) { char membuf[MAX_LEN]; - sprintf(membuf, "C%03d\r", ch); + SNPRINTF(membuf, sizeof(membuf), "C%03d\r", ch); return write_block(&rig->state.rigport, (unsigned char *) membuf, strlen(membuf)); } diff --git a/rigs/jrc/nrd525.c b/rigs/jrc/nrd525.c index 0becefcbb..8d42067fa 100644 --- a/rigs/jrc/nrd525.c +++ b/rigs/jrc/nrd525.c @@ -167,7 +167,7 @@ static int nrd525_set_freq(RIG *rig, vfo_t vfo, freq_t freq) { char freqbuf[12]; - sprintf(freqbuf, "F%08u", (unsigned)(freq / 10)); + SNPRINTF(freqbuf, sizeof(freqbuf), "F%08u", (unsigned)(freq / 10)); return write_block(&rig->state.rigport, (unsigned char *) freqbuf, strlen(freqbuf)); } @@ -237,7 +237,7 @@ static int nrd525_set_mem(RIG *rig, vfo_t vfo, int ch) { char membuf[12]; - sprintf(membuf, "C%03d", ch); + SNPRINTF(membuf, sizeof(membuf), "C%03d", ch); return write_block(&rig->state.rigport, (unsigned char *) membuf, strlen(membuf)); }