mirror of
https://github.com/gnss-sdr/gnss-sdr
synced 2024-12-14 12:10:34 +00:00
Ensure that buffers are always terminated
This commit is contained in:
parent
47ded00812
commit
bbaa9310ec
@ -674,30 +674,37 @@ void setcodepri(int sys, int freq, const char *pri)
|
|||||||
if (sys & SYS_GPS)
|
if (sys & SYS_GPS)
|
||||||
{
|
{
|
||||||
std::strncpy(codepris[0][freq - 1], pri, 16);
|
std::strncpy(codepris[0][freq - 1], pri, 16);
|
||||||
|
codepris[0][freq - 1][15] = '\0';
|
||||||
}
|
}
|
||||||
if (sys & SYS_GLO)
|
if (sys & SYS_GLO)
|
||||||
{
|
{
|
||||||
std::strncpy(codepris[1][freq - 1], pri, 16);
|
std::strncpy(codepris[1][freq - 1], pri, 16);
|
||||||
|
codepris[1][freq - 1][15] = '\0';
|
||||||
}
|
}
|
||||||
if (sys & SYS_GAL)
|
if (sys & SYS_GAL)
|
||||||
{
|
{
|
||||||
std::strncpy(codepris[2][freq - 1], pri, 16);
|
std::strncpy(codepris[2][freq - 1], pri, 16);
|
||||||
|
codepris[2][freq - 1][15] = '\0';
|
||||||
}
|
}
|
||||||
if (sys & SYS_QZS)
|
if (sys & SYS_QZS)
|
||||||
{
|
{
|
||||||
std::strncpy(codepris[3][freq - 1], pri, 16);
|
std::strncpy(codepris[3][freq - 1], pri, 16);
|
||||||
|
codepris[3][freq - 1][15] = '\0';
|
||||||
}
|
}
|
||||||
if (sys & SYS_SBS)
|
if (sys & SYS_SBS)
|
||||||
{
|
{
|
||||||
std::strncpy(codepris[4][freq - 1], pri, 16);
|
std::strncpy(codepris[4][freq - 1], pri, 16);
|
||||||
|
codepris[4][freq - 1][15] = '\0';
|
||||||
}
|
}
|
||||||
if (sys & SYS_BDS)
|
if (sys & SYS_BDS)
|
||||||
{
|
{
|
||||||
std::strncpy(codepris[5][freq - 1], pri, 16);
|
std::strncpy(codepris[5][freq - 1], pri, 16);
|
||||||
|
codepris[5][freq - 1][15] = '\0';
|
||||||
}
|
}
|
||||||
if (sys & SYS_IRN)
|
if (sys & SYS_IRN)
|
||||||
{
|
{
|
||||||
std::strncpy(codepris[6][freq - 1], pri, 16);
|
std::strncpy(codepris[6][freq - 1], pri, 16);
|
||||||
|
codepris[6][freq - 1][15] = '\0';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -2982,6 +2989,7 @@ pcv_t *searchpcv(int sat, const char *type, gtime_t time,
|
|||||||
if (strlen(type) < MAXANT + 1)
|
if (strlen(type) < MAXANT + 1)
|
||||||
{
|
{
|
||||||
std::strncpy(buff, type, MAXANT);
|
std::strncpy(buff, type, MAXANT);
|
||||||
|
buff[MAXANT - 1] = '\0';
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -3873,6 +3881,7 @@ void traceopen(const char *file)
|
|||||||
if (strlen(file) < 1025)
|
if (strlen(file) < 1025)
|
||||||
{
|
{
|
||||||
std::strncpy(file_trace, file, 1024);
|
std::strncpy(file_trace, file, 1024);
|
||||||
|
file_trace[1023] = '\0';
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -4100,6 +4109,7 @@ void createdir(const char *path)
|
|||||||
if (strlen(path) < 1025)
|
if (strlen(path) < 1025)
|
||||||
{
|
{
|
||||||
std::strncpy(buff, path, 1024);
|
std::strncpy(buff, path, 1024);
|
||||||
|
buff[1023] = '\0';
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -4145,6 +4155,7 @@ int repstr(char *str, const char *pat, const char *rep)
|
|||||||
if (strlen(p) < 1025)
|
if (strlen(p) < 1025)
|
||||||
{
|
{
|
||||||
std::strncpy(r, p, 1024);
|
std::strncpy(r, p, 1024);
|
||||||
|
r[1023] = '\0';
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -5083,6 +5094,7 @@ int rtk_uncompress(const char *file, char *uncfile)
|
|||||||
if (strlen(file) < 1025)
|
if (strlen(file) < 1025)
|
||||||
{
|
{
|
||||||
std::strncpy(tmpfile, file, 1024);
|
std::strncpy(tmpfile, file, 1024);
|
||||||
|
tmpfile[1023] = '\0';
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -5279,6 +5291,7 @@ int expath(const char *path, char *paths[], int nmax)
|
|||||||
if (strlen(paths[i]) < 1025)
|
if (strlen(paths[i]) < 1025)
|
||||||
{
|
{
|
||||||
std::strncpy(tmp, paths[i], 1024);
|
std::strncpy(tmp, paths[i], 1024);
|
||||||
|
tmp[1023] = '\0';
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -164,6 +164,7 @@ int rtkopenstat(const char *file, int level)
|
|||||||
if (strlen(file) < 1025)
|
if (strlen(file) < 1025)
|
||||||
{
|
{
|
||||||
std::strncpy(file_stat, file, 1024);
|
std::strncpy(file_stat, file, 1024);
|
||||||
|
file_stat[1023] = '\0';
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -996,6 +996,7 @@ int rtksvrstart(rtksvr_t *svr, int cycle, int buffsize, int *strs,
|
|||||||
if (strlen(rcvopts[i]) < 256)
|
if (strlen(rcvopts[i]) < 256)
|
||||||
{
|
{
|
||||||
std::strncpy(svr->rtcm[i].opt, rcvopts[i], 256);
|
std::strncpy(svr->rtcm[i].opt, rcvopts[i], 256);
|
||||||
|
svr->rtcm[i].opt[255] = '\0';
|
||||||
}
|
}
|
||||||
|
|
||||||
/* connect dgps corrections */
|
/* connect dgps corrections */
|
||||||
|
@ -118,6 +118,7 @@ serial_t *openserial(const char *path, int mode, char *msg)
|
|||||||
else if (strlen(path) < 128)
|
else if (strlen(path) < 128)
|
||||||
{
|
{
|
||||||
std::strncpy(port, path, 128);
|
std::strncpy(port, path, 128);
|
||||||
|
port[127] = '\0';
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < 10; i++)
|
for (i = 0; i < 10; i++)
|
||||||
@ -423,6 +424,7 @@ file_t *openfile(const char *path, int mode, char *msg)
|
|||||||
if (strlen(path) < MAXSTRPATH)
|
if (strlen(path) < MAXSTRPATH)
|
||||||
{
|
{
|
||||||
std::strncpy(file->path, path, MAXSTRPATH);
|
std::strncpy(file->path, path, MAXSTRPATH);
|
||||||
|
file->path[MAXSTRPATH - 1] = '\0';
|
||||||
}
|
}
|
||||||
if ((p = strstr(file->path, "::")))
|
if ((p = strstr(file->path, "::")))
|
||||||
{
|
{
|
||||||
@ -744,6 +746,7 @@ void decodetcppath(const char *path, char *addr, char *port, char *user,
|
|||||||
if (strlen(path) < MAXSTRPATH)
|
if (strlen(path) < MAXSTRPATH)
|
||||||
{
|
{
|
||||||
std::strncpy(buff, path, MAXSTRPATH);
|
std::strncpy(buff, path, MAXSTRPATH);
|
||||||
|
buff[MAXSTRPATH - 1] = '\0';
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(p = strrchr(buff, '@')))
|
if (!(p = strrchr(buff, '@')))
|
||||||
@ -759,12 +762,14 @@ void decodetcppath(const char *path, char *addr, char *port, char *user,
|
|||||||
if (str)
|
if (str)
|
||||||
{
|
{
|
||||||
std::strncpy(str, q + 1, NTRIP_MAXSTR);
|
std::strncpy(str, q + 1, NTRIP_MAXSTR);
|
||||||
|
str[NTRIP_MAXSTR - 1] = '\0';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
*p = '\0';
|
*p = '\0';
|
||||||
if (mntpnt)
|
if (mntpnt)
|
||||||
{
|
{
|
||||||
std::strncpy(mntpnt, p + 1, 256);
|
std::strncpy(mntpnt, p + 1, 256);
|
||||||
|
mntpnt[255] = '\0';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ((p = strrchr(buff, '@')))
|
if ((p = strrchr(buff, '@')))
|
||||||
@ -776,11 +781,13 @@ void decodetcppath(const char *path, char *addr, char *port, char *user,
|
|||||||
if (passwd)
|
if (passwd)
|
||||||
{
|
{
|
||||||
std::strncpy(passwd, q + 1, 256);
|
std::strncpy(passwd, q + 1, 256);
|
||||||
|
passwd[255] = '\0';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (user)
|
if (user)
|
||||||
{
|
{
|
||||||
std::strncpy(user, buff, 256);
|
std::strncpy(user, buff, 256);
|
||||||
|
user[255] = '\0';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -794,11 +801,13 @@ void decodetcppath(const char *path, char *addr, char *port, char *user,
|
|||||||
if (port)
|
if (port)
|
||||||
{
|
{
|
||||||
std::strncpy(port, q + 1, 256);
|
std::strncpy(port, q + 1, 256);
|
||||||
|
port[255] = '\0';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (addr)
|
if (addr)
|
||||||
{
|
{
|
||||||
std::strncpy(addr, p, 1024);
|
std::strncpy(addr, p, 256);
|
||||||
|
addr[255] = '\0';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1081,6 +1090,7 @@ void updatetcpsvr(tcpsvr_t *tcpsvr, char *msg)
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
std::strncpy(saddr, tcpsvr->cli[i].saddr, 256);
|
std::strncpy(saddr, tcpsvr->cli[i].saddr, 256);
|
||||||
|
saddr[255] = '\0';
|
||||||
n++;
|
n++;
|
||||||
}
|
}
|
||||||
if (n == 0)
|
if (n == 0)
|
||||||
@ -1149,6 +1159,7 @@ int accsock(tcpsvr_t *tcpsvr, char *msg)
|
|||||||
if (strlen(inet_ntoa(addr.sin_addr)) < 256)
|
if (strlen(inet_ntoa(addr.sin_addr)) < 256)
|
||||||
{
|
{
|
||||||
std::strncpy(tcpsvr->cli[i].saddr, inet_ntoa(addr.sin_addr), 256);
|
std::strncpy(tcpsvr->cli[i].saddr, inet_ntoa(addr.sin_addr), 256);
|
||||||
|
tcpsvr->cli[i].saddr[255] = '\0';
|
||||||
}
|
}
|
||||||
sprintf(msg, "%s", tcpsvr->cli[i].saddr);
|
sprintf(msg, "%s", tcpsvr->cli[i].saddr);
|
||||||
tracet(2, "accsock: connected sock=%d addr=%s\n", tcpsvr->cli[i].sock, tcpsvr->cli[i].saddr);
|
tracet(2, "accsock: connected sock=%d addr=%s\n", tcpsvr->cli[i].sock, tcpsvr->cli[i].saddr);
|
||||||
@ -1848,6 +1859,7 @@ void decodeftppath(const char *path, char *addr, char *file, char *user,
|
|||||||
if (strlen(path) < MAXSTRPATH)
|
if (strlen(path) < MAXSTRPATH)
|
||||||
{
|
{
|
||||||
std::strncpy(buff, path, MAXSTRPATH);
|
std::strncpy(buff, path, MAXSTRPATH);
|
||||||
|
buff[MAXSTRPATH - 1] = '\0';
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((p = strchr(buff, '/')))
|
if ((p = strchr(buff, '/')))
|
||||||
@ -2292,6 +2304,7 @@ int stropen(stream_t *stream, int type, int mode, const char *path)
|
|||||||
if (strlen(path) < MAXSTRPATH)
|
if (strlen(path) < MAXSTRPATH)
|
||||||
{
|
{
|
||||||
std::strncpy(stream->path, path, MAXSTRPATH);
|
std::strncpy(stream->path, path, MAXSTRPATH);
|
||||||
|
stream->path[MAXSTRPATH - 1] = '\0';
|
||||||
}
|
}
|
||||||
stream->inb = stream->inr = stream->outb = stream->outr = 0;
|
stream->inb = stream->inr = stream->outb = stream->outr = 0;
|
||||||
stream->tick = tickget();
|
stream->tick = tickget();
|
||||||
@ -2721,6 +2734,7 @@ void strsetdir(const char *dir)
|
|||||||
if (strlen(dir) < 1024)
|
if (strlen(dir) < 1024)
|
||||||
{
|
{
|
||||||
std::strncpy(localdir, dir, 1024);
|
std::strncpy(localdir, dir, 1024);
|
||||||
|
localdir[1023] = '\0';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2736,6 +2750,7 @@ void strsetproxy(const char *addr)
|
|||||||
if (strlen(addr) < 256)
|
if (strlen(addr) < 256)
|
||||||
{
|
{
|
||||||
std::strncpy(proxyaddr, addr, 256);
|
std::strncpy(proxyaddr, addr, 256);
|
||||||
|
proxyaddr[255] = '\0';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user