kopia lustrzana https://github.com/Hamlib/Hamlib
Fix buffer overrun in all utilities
Change MAXCONFLEN to 1024 bytes for some future proofingpull/224/head
rodzic
5773df162c
commit
ee87d5e6df
|
@ -105,7 +105,7 @@ static struct option long_options[] =
|
||||||
{0, 0, 0, 0}
|
{0, 0, 0, 0}
|
||||||
};
|
};
|
||||||
|
|
||||||
#define MAXCONFLEN 128
|
#define MAXCONFLEN 1024
|
||||||
|
|
||||||
int interactive = 1; /* if no cmd on command line, switch to interactive */
|
int interactive = 1; /* if no cmd on command line, switch to interactive */
|
||||||
int prompt = 1; /* Print prompt in ampctl */
|
int prompt = 1; /* Print prompt in ampctl */
|
||||||
|
@ -205,6 +205,13 @@ int main(int argc, char *argv[])
|
||||||
strcat(conf_parms, ",");
|
strcat(conf_parms, ",");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (strlen(conf_parms) + strlen(optarg) > MAXCONFLEN - 24)
|
||||||
|
{
|
||||||
|
printf("Length of conf_parms exceeds internal maximum of %d\n",
|
||||||
|
MAXCONFLEN - 24);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
strncat(conf_parms, optarg, MAXCONFLEN - strlen(conf_parms));
|
strncat(conf_parms, optarg, MAXCONFLEN - strlen(conf_parms));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
|
@ -111,7 +111,7 @@ const char *src_addr = NULL; /* INADDR_ANY */
|
||||||
|
|
||||||
char send_cmd_term = '\r'; /* send_cmd termination char */
|
char send_cmd_term = '\r'; /* send_cmd termination char */
|
||||||
|
|
||||||
#define MAXCONFLEN 128
|
#define MAXCONFLEN 1024
|
||||||
|
|
||||||
|
|
||||||
static void handle_error(enum rig_debug_level_e lvl, const char *msg)
|
static void handle_error(enum rig_debug_level_e lvl, const char *msg)
|
||||||
|
@ -246,6 +246,13 @@ int main(int argc, char *argv[])
|
||||||
strcat(conf_parms, ",");
|
strcat(conf_parms, ",");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (strlen(conf_parms) + strlen(optarg) > MAXCONFLEN - 24)
|
||||||
|
{
|
||||||
|
printf("Length of conf_parms exceeds internal maximum of %d\n",
|
||||||
|
MAXCONFLEN - 24);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
strncat(conf_parms, optarg, MAXCONFLEN - strlen(conf_parms));
|
strncat(conf_parms, optarg, MAXCONFLEN - strlen(conf_parms));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
|
@ -116,7 +116,7 @@ static struct option long_options[] =
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#define MAXCONFLEN 128
|
#define MAXCONFLEN 1024
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
|
@ -366,6 +366,13 @@ int main(int argc, char *argv[])
|
||||||
strcat(conf_parms, ",");
|
strcat(conf_parms, ",");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (strlen(conf_parms) + strlen(optarg) > MAXCONFLEN - 24)
|
||||||
|
{
|
||||||
|
printf("Length of conf_parms exceeds internal maximum of %d\n",
|
||||||
|
MAXCONFLEN - 24);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
strncat(conf_parms, optarg, MAXCONFLEN - strlen(conf_parms));
|
strncat(conf_parms, optarg, MAXCONFLEN - strlen(conf_parms));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
|
@ -116,7 +116,7 @@ static sig_atomic_t volatile ctrl_c;
|
||||||
static int volatile ctrl_c;
|
static int volatile ctrl_c;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define MAXCONFLEN 128
|
#define MAXCONFLEN 1024
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
# ifdef WIN32
|
# ifdef WIN32
|
||||||
|
@ -406,6 +406,13 @@ int main(int argc, char *argv[])
|
||||||
strcat(conf_parms, ",");
|
strcat(conf_parms, ",");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (strlen(conf_parms) + strlen(optarg) > MAXCONFLEN - 24)
|
||||||
|
{
|
||||||
|
printf("Length of conf_parms exceeds internal maximum of %d\n",
|
||||||
|
MAXCONFLEN - 24);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
strncat(conf_parms, optarg, MAXCONFLEN - strlen(conf_parms));
|
strncat(conf_parms, optarg, MAXCONFLEN - strlen(conf_parms));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
|
@ -142,7 +142,7 @@ static int volatile ctrl_c;
|
||||||
const char *portno = "4532";
|
const char *portno = "4532";
|
||||||
const char *src_addr = NULL; /* INADDR_ANY */
|
const char *src_addr = NULL; /* INADDR_ANY */
|
||||||
|
|
||||||
#define MAXCONFLEN 128
|
#define MAXCONFLEN 1024
|
||||||
|
|
||||||
static void sync_callback(int lock)
|
static void sync_callback(int lock)
|
||||||
{
|
{
|
||||||
|
@ -457,6 +457,13 @@ int main(int argc, char *argv[])
|
||||||
strcat(conf_parms, ",");
|
strcat(conf_parms, ",");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (strlen(conf_parms) + strlen(optarg) > MAXCONFLEN - 24)
|
||||||
|
{
|
||||||
|
printf("Length of conf_parms exceeds internal maximum of %d\n",
|
||||||
|
MAXCONFLEN - 24);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
strncat(conf_parms, optarg, MAXCONFLEN - strlen(conf_parms));
|
strncat(conf_parms, optarg, MAXCONFLEN - strlen(conf_parms));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
|
@ -90,7 +90,7 @@ static struct option long_options[] =
|
||||||
{0, 0, 0, 0}
|
{0, 0, 0, 0}
|
||||||
};
|
};
|
||||||
|
|
||||||
#define MAXCONFLEN 128
|
#define MAXCONFLEN 1024
|
||||||
|
|
||||||
int all;
|
int all;
|
||||||
|
|
||||||
|
@ -185,6 +185,13 @@ int main(int argc, char *argv[])
|
||||||
strcat(conf_parms, ",");
|
strcat(conf_parms, ",");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (strlen(conf_parms) + strlen(optarg) > MAXCONFLEN - 24)
|
||||||
|
{
|
||||||
|
printf("Length of conf_parms exceeds internal maximum of %d\n",
|
||||||
|
MAXCONFLEN - 24);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
strncat(conf_parms, optarg, MAXCONFLEN - strlen(conf_parms));
|
strncat(conf_parms, optarg, MAXCONFLEN - strlen(conf_parms));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
|
@ -70,7 +70,7 @@ static struct option long_options[] =
|
||||||
{0, 0, 0, 0}
|
{0, 0, 0, 0}
|
||||||
};
|
};
|
||||||
|
|
||||||
#define MAXCONFLEN 128
|
#define MAXCONFLEN 1024
|
||||||
|
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
|
@ -169,6 +169,13 @@ int main(int argc, char *argv[])
|
||||||
strcat(rig_conf_parms, ",");
|
strcat(rig_conf_parms, ",");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (strlen(rig_conf_parms) + strlen(optarg) > MAXCONFLEN - 24)
|
||||||
|
{
|
||||||
|
printf("Length of conf_parms exceeds internal maximum of %d\n",
|
||||||
|
MAXCONFLEN - 24);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
strncat(rig_conf_parms, optarg, MAXCONFLEN - strlen(rig_conf_parms));
|
strncat(rig_conf_parms, optarg, MAXCONFLEN - strlen(rig_conf_parms));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
|
@ -65,7 +65,7 @@ static struct option long_options[] =
|
||||||
{0, 0, 0, 0}
|
{0, 0, 0, 0}
|
||||||
};
|
};
|
||||||
|
|
||||||
#define MAXCONFLEN 128
|
#define MAXCONFLEN 1024
|
||||||
|
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
|
@ -159,6 +159,13 @@ int main(int argc, char *argv[])
|
||||||
strcat(conf_parms, ",");
|
strcat(conf_parms, ",");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (strlen(conf_parms) + strlen(optarg) > MAXCONFLEN - 24)
|
||||||
|
{
|
||||||
|
printf("Length of conf_parms exceeds internal maximum of %d\n",
|
||||||
|
MAXCONFLEN - 24);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
strncat(conf_parms, optarg, MAXCONFLEN - strlen(conf_parms));
|
strncat(conf_parms, optarg, MAXCONFLEN - strlen(conf_parms));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
|
@ -106,7 +106,7 @@ static struct option long_options[] =
|
||||||
{0, 0, 0, 0}
|
{0, 0, 0, 0}
|
||||||
};
|
};
|
||||||
|
|
||||||
#define MAXCONFLEN 128
|
#define MAXCONFLEN 1024
|
||||||
|
|
||||||
/* variable for readline support */
|
/* variable for readline support */
|
||||||
#ifdef HAVE_LIBREADLINE
|
#ifdef HAVE_LIBREADLINE
|
||||||
|
@ -210,6 +210,13 @@ int main(int argc, char *argv[])
|
||||||
strcat(conf_parms, ",");
|
strcat(conf_parms, ",");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (strlen(conf_parms) + strlen(optarg) > MAXCONFLEN - 24)
|
||||||
|
{
|
||||||
|
printf("Length of conf_parms exceeds internal maximum of %d\n",
|
||||||
|
MAXCONFLEN - 24);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
strncat(conf_parms, optarg, MAXCONFLEN - strlen(conf_parms));
|
strncat(conf_parms, optarg, MAXCONFLEN - strlen(conf_parms));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
|
@ -110,7 +110,7 @@ const char *src_addr = NULL; /* INADDR_ANY */
|
||||||
azimuth_t az_offset;
|
azimuth_t az_offset;
|
||||||
elevation_t el_offset;
|
elevation_t el_offset;
|
||||||
|
|
||||||
#define MAXCONFLEN 128
|
#define MAXCONFLEN 1024
|
||||||
|
|
||||||
|
|
||||||
static void handle_error(enum rig_debug_level_e lvl, const char *msg)
|
static void handle_error(enum rig_debug_level_e lvl, const char *msg)
|
||||||
|
@ -243,6 +243,13 @@ int main(int argc, char *argv[])
|
||||||
strcat(conf_parms, ",");
|
strcat(conf_parms, ",");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (strlen(conf_parms) + strlen(optarg) > MAXCONFLEN - 24)
|
||||||
|
{
|
||||||
|
printf("Length of conf_parms exceeds internal maximum of %d\n",
|
||||||
|
MAXCONFLEN - 24);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
strncat(conf_parms, optarg, MAXCONFLEN - strlen(conf_parms));
|
strncat(conf_parms, optarg, MAXCONFLEN - strlen(conf_parms));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
Ładowanie…
Reference in New Issue