Common routine for buffer overflow error in sprintflst.c

https://github.com/Hamlib/Hamlib/issues/580
pull/649/head
Michael Black W9MDB 2021-03-06 14:49:01 -06:00
rodzic 3d613519d5
commit 6577c0f564
1 zmienionych plików z 30 dodań i 72 usunięć

Wyświetl plik

@ -37,6 +37,18 @@
/* #define DUMMY_ALL 0x7ffffffffffffffLL */
#define DUMMY_ALL ((setting_t)-1)
// just doing a warning message for now
// eventually should make this -RIG_EINTERNAL
int check_buffer_overflow(char *str,int len,int nlen)
{
if (len +1 >= nlen)
{
rig_debug(RIG_DEBUG_ERR, "%s: buffer overflow, len=%u, nlen=%d, str='%s'\n", __func__, len, nlen, str);
}
return RIG_OK;
}
int rig_sprintf_vfo(char *str, int nlen, vfo_t vfo)
{
unsigned int i, len = 0;
@ -60,10 +72,7 @@ int rig_sprintf_vfo(char *str, int nlen, vfo_t vfo)
}
}
if (len +1 >= nlen)
{
rig_debug(RIG_DEBUG_ERR, "%s: buffer overflow, len=%u, nlen=%d, str='%s'\n", __func__, len, nlen, str);
}
check_buffer_overflow(str,len,nlen);
return len;
}
@ -93,10 +102,7 @@ int rig_sprintf_mode(char *str, int nlen, rmode_t mode)
len += strlen(ms) + 1;
}
if (len +1 >= nlen)
{
rig_debug(RIG_DEBUG_ERR, "%s: buffer overflow, len=%u, nlen=%d, str='%s'\n", __func__, len, nlen, str);
}
check_buffer_overflow(str,len,nlen);
return len;
}
@ -144,10 +150,7 @@ int rig_sprintf_ant(char *str, int nlen, ant_t ant)
}
}
if (len +1 >= nlen)
{
rig_debug(RIG_DEBUG_ERR, "%s: buffer overflow, len=%u, nlen=%d, str='%s'\n", __func__, len, nlen, str);
}
check_buffer_overflow(str,len,nlen);
return len;
}
@ -177,10 +180,7 @@ int rig_sprintf_func(char *str, int nlen, setting_t func)
len += strlen(ms) + 1;
}
if (len +1 >= nlen)
{
rig_debug(RIG_DEBUG_ERR, "%s: buffer overflow, len=%u, nlen=%d, str='%s'\n", __func__, len, nlen, str);
}
check_buffer_overflow(str,len,nlen);
return len;
}
@ -210,10 +210,7 @@ int rot_sprintf_func(char *str, int nlen, setting_t func)
len += strlen(ms) + 1;
}
if (len +1 >= nlen)
{
rig_debug(RIG_DEBUG_ERR, "%s: buffer overflow, len=%u, nlen=%d, str='%s'\n", __func__, len, nlen, str);
}
check_buffer_overflow(str,len,nlen);
return len;
}
@ -243,10 +240,7 @@ int rig_sprintf_level(char *str, int nlen, setting_t level)
len += strlen(ms) + 1;
}
if (len +1 >= nlen)
{
rig_debug(RIG_DEBUG_ERR, "%s: buffer overflow, len=%u, nlen=%d, str='%s'\n", __func__, len, nlen, str);
}
check_buffer_overflow(str,len,nlen);
return len;
}
@ -276,10 +270,7 @@ int rot_sprintf_level(char *str, int nlen, setting_t level)
len += strlen(ms) + 1;
}
if (len +1 >= nlen)
{
rig_debug(RIG_DEBUG_ERR, "%s: buffer overflow, len=%u, nlen=%d, str='%s'\n", __func__, len, nlen, str);
}
check_buffer_overflow(str,len,nlen);
return len;
}
@ -309,10 +300,7 @@ int amp_sprintf_level(char *str, int nlen, setting_t level)
len += strlen(ms) + 1;
}
if (len +1 >= nlen)
{
rig_debug(RIG_DEBUG_ERR, "%s: buffer overflow, len=%u, nlen=%d, str='%s'\n", __func__, len, nlen, str);
}
check_buffer_overflow(str,len,nlen);
return len;
}
@ -353,10 +341,7 @@ int sprintf_level_ext(char *str, int nlen, const struct confparams *extlevels)
}
}
if (len +1 >= nlen)
{
rig_debug(RIG_DEBUG_ERR, "%s: buffer overflow, len=%u, nlen=%d, str='%s'\n", __func__, len, nlen, str);
}
check_buffer_overflow(str,len,nlen);
return len;
}
@ -413,10 +398,7 @@ int rig_sprintf_level_gran(char *str, int nlen, setting_t level, const gran_t *g
}
}
if (len +1 >= nlen)
{
rig_debug(RIG_DEBUG_ERR, "%s: buffer overflow, len=%u, nlen=%d, str='%s'\n", __func__, len, nlen, str);
}
check_buffer_overflow(str,len,nlen);
return len;
}
@ -473,10 +455,7 @@ int rot_sprintf_level_gran(char *str, int nlen, setting_t level, const gran_t *g
}
}
if (len +1 >= nlen)
{
rig_debug(RIG_DEBUG_ERR, "%s: buffer overflow, len=%u, nlen=%d, str='%s'\n", __func__, len, nlen, str);
}
check_buffer_overflow(str,len,nlen);
return len;
}
@ -506,10 +485,7 @@ int rig_sprintf_parm(char *str, int nlen, setting_t parm)
len += strlen(ms) + 1;
}
if (len +1 >= nlen)
{
rig_debug(RIG_DEBUG_ERR, "%s: buffer overflow, len=%u, nlen=%d, str='%s'\n", __func__, len, nlen, str);
}
check_buffer_overflow(str,len,nlen);
return len;
}
@ -539,10 +515,7 @@ int rot_sprintf_parm(char *str, int nlen, setting_t parm)
len += strlen(ms) + 1;
}
if (len +1 >= nlen)
{
rig_debug(RIG_DEBUG_ERR, "%s: buffer overflow, len=%u, nlen=%d, str='%s'\n", __func__, len, nlen, str);
}
check_buffer_overflow(str,len,nlen);
return len;
}
@ -599,10 +572,7 @@ int rig_sprintf_parm_gran(char *str, int nlen, setting_t parm, const gran_t *gra
}
}
if (len +1 >= nlen)
{
rig_debug(RIG_DEBUG_ERR, "%s: buffer overflow, len=%u, nlen=%d, str='%s'\n", __func__, len, nlen, str);
}
check_buffer_overflow(str,len,nlen);
return len;
}
@ -659,10 +629,7 @@ int rot_sprintf_parm_gran(char *str, int nlen, setting_t parm, const gran_t *gra
}
}
if (len +1 >= nlen)
{
rig_debug(RIG_DEBUG_ERR, "%s: buffer overflow, len=%u, nlen=%d, str='%s'\n", __func__, len, nlen, str);
}
check_buffer_overflow(str,len,nlen);
return len;
}
@ -692,10 +659,7 @@ int rig_sprintf_vfop(char *str, int nlen, vfo_op_t op)
len += strlen(ms) + 1;
}
if (len +1 >= nlen)
{
rig_debug(RIG_DEBUG_ERR, "%s: buffer overflow, len=%u, nlen=%d, str='%s'\n", __func__, len, nlen, str);
}
check_buffer_overflow(str,len,nlen);
return len;
}
@ -725,10 +689,7 @@ int rig_sprintf_scan(char *str, int nlen, scan_t rscan)
len += strlen(ms) + 1;
}
if (len +1 >= nlen)
{
rig_debug(RIG_DEBUG_ERR, "%s: buffer overflow, len=%u, nlen=%d, str='%s'\n", __func__, len, nlen, str);
}
check_buffer_overflow(str,len,nlen);
return len;
}
@ -756,10 +717,7 @@ int rot_sprintf_status(char *str, int nlen, rot_status_t status)
}
}
if (len +1 >= nlen)
{
rig_debug(RIG_DEBUG_ERR, "%s: buffer overflow, len=%u, nlen=%d, str='%s'\n", __func__, len, nlen, str);
}
check_buffer_overflow(str,len,nlen);
return len;
}