From e78a8258ce2ebe86dd1494067524e4059ed9f314 Mon Sep 17 00:00:00 2001 From: Mike Black W9MDB Date: Wed, 1 Sep 2021 09:06:23 -0500 Subject: [PATCH] Fix gp2000_get_mode bogus sscanf -- potential seg fault function would not work --- rigs/rs/gp2000.c | 5 ++++- rigs/rs/gp2000.h | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/rigs/rs/gp2000.c b/rigs/rs/gp2000.c index cfc34e3bb..f2b7e4026 100644 --- a/rigs/rs/gp2000.c +++ b/rigs/rs/gp2000.c @@ -237,7 +237,7 @@ gp2000_get_mode(RIG *rig, vfo_t vfo, rmode_t *mode, pbwidth_t *width) int buf_len, retval; int nmode; char *pmode = "UNKNOWN"; - int n = sscanf(buf, "%*cI%d", &nmode); + int n; rig_debug(RIG_DEBUG_VERBOSE, "%s: vfo=%s\n", __func__, rig_strvfo(vfo)); @@ -252,8 +252,11 @@ gp2000_get_mode(RIG *rig, vfo_t vfo, rmode_t *mode, pbwidth_t *width) return retval; } + n = sscanf(buf, "%*cI%d", &nmode); + if (n != 1) { + rig_debug(RIG_DEBUG_ERR, "%s: unable to parse mode from '%s'\n", __func__, buf); return -RIG_EPROTO; } diff --git a/rigs/rs/gp2000.h b/rigs/rs/gp2000.h index 13ff3874c..848f1ca00 100644 --- a/rigs/rs/gp2000.h +++ b/rigs/rs/gp2000.h @@ -25,7 +25,7 @@ #define _XK2000_H 1 #undef BACKEND_VER -#define BACKEND_VER "20180307" +#define BACKEND_VER "20210901" #include