Fix buffer overrun in all utilities

Change MAXCONFLEN to 1024 bytes for some future proofing
pull/224/head
Michael Black 2020-04-01 14:51:50 -05:00
rodzic 5773df162c
commit ee87d5e6df
10 zmienionych plików z 80 dodań i 10 usunięć

Wyświetl plik

@ -105,7 +105,7 @@ static struct option long_options[] =
{0, 0, 0, 0}
};
#define MAXCONFLEN 128
#define MAXCONFLEN 1024
int interactive = 1; /* if no cmd on command line, switch to interactive */
int prompt = 1; /* Print prompt in ampctl */
@ -205,6 +205,13 @@ int main(int argc, char *argv[])
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));
break;

Wyświetl plik

@ -111,7 +111,7 @@ const char *src_addr = NULL; /* INADDR_ANY */
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)
@ -246,6 +246,13 @@ int main(int argc, char *argv[])
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));
break;

Wyświetl plik

@ -116,7 +116,7 @@ static struct option long_options[] =
};
#define MAXCONFLEN 128
#define MAXCONFLEN 1024
int main(int argc, char *argv[])
{
@ -366,6 +366,13 @@ int main(int argc, char *argv[])
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));
break;

Wyświetl plik

@ -116,7 +116,7 @@ static sig_atomic_t volatile ctrl_c;
static int volatile ctrl_c;
#endif
#define MAXCONFLEN 128
#define MAXCONFLEN 1024
#if 0
# ifdef WIN32
@ -406,6 +406,13 @@ int main(int argc, char *argv[])
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));
break;

Wyświetl plik

@ -142,7 +142,7 @@ static int volatile ctrl_c;
const char *portno = "4532";
const char *src_addr = NULL; /* INADDR_ANY */
#define MAXCONFLEN 128
#define MAXCONFLEN 1024
static void sync_callback(int lock)
{
@ -457,6 +457,13 @@ int main(int argc, char *argv[])
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));
break;

Wyświetl plik

@ -90,7 +90,7 @@ static struct option long_options[] =
{0, 0, 0, 0}
};
#define MAXCONFLEN 128
#define MAXCONFLEN 1024
int all;
@ -185,6 +185,13 @@ int main(int argc, char *argv[])
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));
break;

Wyświetl plik

@ -70,7 +70,7 @@ static struct option long_options[] =
{0, 0, 0, 0}
};
#define MAXCONFLEN 128
#define MAXCONFLEN 1024
int main(int argc, char *argv[])
@ -169,6 +169,13 @@ int main(int argc, char *argv[])
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));
break;

Wyświetl plik

@ -65,7 +65,7 @@ static struct option long_options[] =
{0, 0, 0, 0}
};
#define MAXCONFLEN 128
#define MAXCONFLEN 1024
int main(int argc, char *argv[])
@ -159,6 +159,13 @@ int main(int argc, char *argv[])
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));
break;

Wyświetl plik

@ -106,7 +106,7 @@ static struct option long_options[] =
{0, 0, 0, 0}
};
#define MAXCONFLEN 128
#define MAXCONFLEN 1024
/* variable for readline support */
#ifdef HAVE_LIBREADLINE
@ -210,6 +210,13 @@ int main(int argc, char *argv[])
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));
break;

Wyświetl plik

@ -110,7 +110,7 @@ const char *src_addr = NULL; /* INADDR_ANY */
azimuth_t az_offset;
elevation_t el_offset;
#define MAXCONFLEN 128
#define MAXCONFLEN 1024
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, ",");
}
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));
break;