Fix some truncation warnings

This commit is contained in:
Carles Fernandez 2023-03-21 09:24:11 +01:00
parent 6004b8f901
commit b99d1afb36
No known key found for this signature in database
GPG Key ID: 4C583C52B0C3877D
4 changed files with 27 additions and 20 deletions

View File

@ -165,16 +165,17 @@ void readionexdcb(FILE *fp, double *dcb, double *rms)
if (strstr(label, "PRN / BIAS / RMS") == label) if (strstr(label, "PRN / BIAS / RMS") == label)
{ {
strncpy(id, buff + 3, 3); int ret = std::snprintf(id, 3, "%s", buff + 3);
id[3] = '\0'; if (ret >= 0 && ret < 3)
if (!(sat = satid2no(id)))
{ {
trace(2, "ionex invalid satellite: %s\n", id); if (!(sat = satid2no(id)))
continue; {
trace(2, "ionex invalid satellite: %s\n", id);
continue;
}
dcb[sat - 1] = str2num(buff, 6, 10);
rms[sat - 1] = str2num(buff, 16, 10);
} }
dcb[sat - 1] = str2num(buff, 6, 10);
rms[sat - 1] = str2num(buff, 16, 10);
} }
else if (strstr(label, "END OF AUX DATA") == label) else if (strstr(label, "END OF AUX DATA") == label)
{ {

View File

@ -123,8 +123,11 @@ int readsp3h(FILE *fp, gtime_t *time, char *type, int *sats,
} }
else if (i == 12) else if (i == 12)
{ {
strncpy(tsys, buff + 9, 3); int ret = std::snprintf(tsys, 3, "%s", buff + 9);
tsys[3] = '\0'; if (ret < 0 || ret > 3)
{
trace(3, "Error reading sp3 header\n")
}
} }
else if (i == 14) else if (i == 14)
{ {

View File

@ -2847,11 +2847,13 @@ int readantex(const char *file, pcvs_t *pcvs)
{ {
strncpy(pcv.type, buff, 20); // MAXANT (64) strncpy(pcv.type, buff, 20); // MAXANT (64)
pcv.type[20] = '\0'; pcv.type[20] = '\0';
strncpy(pcv.code, buff + 20, 20); // MAXANT (64) int ret = std::snprintf(pcv.code, 20, "%s", buff + 20); // MAXANT (64)
pcv.code[20] = '\0'; if (ret >= 0 && ret < 20)
if (!strncmp(pcv.code + 3, " ", 8))
{ {
pcv.sat = satid2no(pcv.code); if (!strncmp(pcv.code + 3, " ", 8))
{
pcv.sat = satid2no(pcv.code);
}
} }
} }
else if (strstr(buff + 60, "VALID FROM")) else if (strstr(buff + 60, "VALID FROM"))

View File

@ -795,8 +795,11 @@ void decodetcppath(const char *path, char *addr, char *port, char *user,
} }
if (addr) if (addr)
{ {
std::strncpy(addr, p, 256); int ret = std::snprintf(addr, 256, "%s", p);
addr[255] = '\0'; if (ret < 0 || ret >= 256)
{
tracet(1, "error reading address");
}
} }
} }
@ -1077,8 +1080,7 @@ void updatetcpsvr(tcpsvr_t *tcpsvr, char *msg)
{ {
continue; continue;
} }
std::strncpy(saddr, tcpsvr->cli[i].saddr, 256); std::snprintf(saddr, 256, "%s", tcpsvr->cli[i].saddr);
saddr[255] = '\0';
n++; n++;
} }
if (n == 0) if (n == 0)
@ -1968,8 +1970,7 @@ void *ftpthread(void *arg)
} }
if (fs::exists(tmpfile)) if (fs::exists(tmpfile))
{ {
std::strncpy(ftp->local, tmpfile.c_str(), 1024); std::snprintf(ftp->local, 1024, "%s", tmpfile.c_str());
ftp->local[1023] = '\0';
tracet(3, "ftpthread: file exists %s\n", ftp->local); tracet(3, "ftpthread: file exists %s\n", ftp->local);
ftp->state = 2; ftp->state = 2;
return nullptr; return nullptr;