mirror of
https://github.com/gnss-sdr/gnss-sdr
synced 2024-12-13 11:40:33 +00:00
Remove usage of strcpy
See CWE-119 https://cwe.mitre.org/data/definitions/119.html
This commit is contained in:
parent
34481bf963
commit
6c5a4c4859
@ -832,7 +832,7 @@ int raim_fde(const obsd_t *obs, int n, const double *rs,
|
||||
sat = obs[i].sat;
|
||||
rms = rms_e;
|
||||
vsat[i] = 0;
|
||||
strcpy(msg, msg_e);
|
||||
std::strncpy(msg, msg_e, 128);
|
||||
}
|
||||
if (stat)
|
||||
{
|
||||
@ -1013,7 +1013,7 @@ int pntpos(const obsd_t *obs, int n, const nav_t *nav,
|
||||
|
||||
if (n <= 0)
|
||||
{
|
||||
strcpy(msg, "no observation data");
|
||||
std::strncpy(msg, "no observation data", 20);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -52,6 +52,7 @@
|
||||
|
||||
#include "rtklib_rtkcmn.h"
|
||||
#include <glog/logging.h>
|
||||
#include <cstring>
|
||||
#include <dirent.h>
|
||||
#include <iostream>
|
||||
#include <sstream>
|
||||
@ -502,7 +503,7 @@ void satno2id(int sat, char *id)
|
||||
sprintf(id, "%03d", prn);
|
||||
return;
|
||||
}
|
||||
strcpy(id, "");
|
||||
std::strncpy(id, "", 1);
|
||||
}
|
||||
|
||||
|
||||
@ -672,31 +673,31 @@ void setcodepri(int sys, int freq, const char *pri)
|
||||
{
|
||||
if (sys & SYS_GPS)
|
||||
{
|
||||
strcpy(codepris[0][freq - 1], pri);
|
||||
std::strncpy(codepris[0][freq - 1], pri, 16);
|
||||
}
|
||||
if (sys & SYS_GLO)
|
||||
{
|
||||
strcpy(codepris[1][freq - 1], pri);
|
||||
std::strncpy(codepris[1][freq - 1], pri, 16);
|
||||
}
|
||||
if (sys & SYS_GAL)
|
||||
{
|
||||
strcpy(codepris[2][freq - 1], pri);
|
||||
std::strncpy(codepris[2][freq - 1], pri, 16);
|
||||
}
|
||||
if (sys & SYS_QZS)
|
||||
{
|
||||
strcpy(codepris[3][freq - 1], pri);
|
||||
std::strncpy(codepris[3][freq - 1], pri, 16);
|
||||
}
|
||||
if (sys & SYS_SBS)
|
||||
{
|
||||
strcpy(codepris[4][freq - 1], pri);
|
||||
std::strncpy(codepris[4][freq - 1], pri, 16);
|
||||
}
|
||||
if (sys & SYS_BDS)
|
||||
{
|
||||
strcpy(codepris[5][freq - 1], pri);
|
||||
std::strncpy(codepris[5][freq - 1], pri, 16);
|
||||
}
|
||||
if (sys & SYS_IRN)
|
||||
{
|
||||
strcpy(codepris[6][freq - 1], pri);
|
||||
std::strncpy(codepris[6][freq - 1], pri, 16);
|
||||
}
|
||||
}
|
||||
else
|
||||
@ -2973,7 +2974,7 @@ pcv_t *searchpcv(int sat, const char *type, gtime_t time,
|
||||
{
|
||||
if (strlen(type) < MAXANT + 1)
|
||||
{
|
||||
strcpy(buff, type);
|
||||
std::strncpy(buff, type, MAXANT);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -3864,7 +3865,7 @@ void traceopen(const char *file)
|
||||
}
|
||||
if (strlen(file) < 1025)
|
||||
{
|
||||
strcpy(file_trace, file);
|
||||
std::strncpy(file_trace, file, 1024);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -4091,7 +4092,7 @@ void createdir(const char *path)
|
||||
|
||||
if (strlen(path) < 1025)
|
||||
{
|
||||
strcpy(buff, path);
|
||||
std::strncpy(buff, path, 1024);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -4136,13 +4137,13 @@ int repstr(char *str, const char *pat, const char *rep)
|
||||
|
||||
if (strlen(p) < 1025)
|
||||
{
|
||||
strcpy(r, p);
|
||||
std::strncpy(r, p, 1024);
|
||||
}
|
||||
else
|
||||
{
|
||||
trace(1, "pat array is too long");
|
||||
}
|
||||
strcpy(str, buff);
|
||||
std::strncpy(str, buff, 1024);
|
||||
return 1;
|
||||
}
|
||||
|
||||
@ -4186,7 +4187,7 @@ int reppath(const char *path, char *rpath, gtime_t time, const char *rov,
|
||||
int stat = 0;
|
||||
char rep[64];
|
||||
|
||||
strcpy(rpath, path);
|
||||
std::strncpy(rpath, path, 1024);
|
||||
|
||||
if (!strstr(rpath, "%"))
|
||||
{
|
||||
@ -5074,7 +5075,7 @@ int rtk_uncompress(const char *file, char *uncfile)
|
||||
|
||||
if (strlen(file) < 1025)
|
||||
{
|
||||
strcpy(tmpfile, file);
|
||||
std::strncpy(tmpfile, file, 1024);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -5090,7 +5091,7 @@ int rtk_uncompress(const char *file, char *uncfile)
|
||||
!strcmp(p, ".gz") || !strcmp(p, ".GZ") ||
|
||||
!strcmp(p, ".zip") || !strcmp(p, ".ZIP"))
|
||||
{
|
||||
strcpy(uncfile, tmpfile);
|
||||
std::strncpy(uncfile, tmpfile, 1024);
|
||||
uncfile[p - tmpfile] = '\0';
|
||||
sprintf(cmd, R"(gzip -f -d -c "%s" > "%s")", tmpfile, uncfile);
|
||||
|
||||
@ -5104,16 +5105,16 @@ int rtk_uncompress(const char *file, char *uncfile)
|
||||
}
|
||||
if (strlen(uncfile) < 1025)
|
||||
{
|
||||
strcpy(tmpfile, uncfile);
|
||||
std::strncpy(tmpfile, uncfile, 1024);
|
||||
}
|
||||
stat = 1;
|
||||
}
|
||||
/* extract tar file */
|
||||
if ((p = strrchr(tmpfile, '.')) && !strcmp(p, ".tar"))
|
||||
{
|
||||
strcpy(uncfile, tmpfile);
|
||||
std::strncpy(uncfile, tmpfile, 1024);
|
||||
uncfile[p - tmpfile] = '\0';
|
||||
strcpy(buff, tmpfile);
|
||||
std::strncpy(buff, tmpfile, 1024);
|
||||
fname = buff;
|
||||
if ((p = strrchr(buff, '/')))
|
||||
{
|
||||
@ -5160,7 +5161,7 @@ int rtk_uncompress(const char *file, char *uncfile)
|
||||
/* extract hatanaka-compressed file by cnx2rnx */
|
||||
else if ((p = strrchr(tmpfile, '.')) && strlen(p) > 3 && (*(p + 3) == 'd' || *(p + 3) == 'D'))
|
||||
{
|
||||
strcpy(uncfile, tmpfile);
|
||||
std::strncpy(uncfile, tmpfile, 1024);
|
||||
uncfile[p - tmpfile + 3] = *(p + 3) == 'D' ? 'O' : 'o';
|
||||
sprintf(cmd, R"(crx2rnx < "%s" > "%s")", tmpfile, uncfile);
|
||||
|
||||
@ -5270,14 +5271,14 @@ int expath(const char *path, char *paths[], int nmax)
|
||||
{
|
||||
if (strlen(paths[i]) < 1025)
|
||||
{
|
||||
strcpy(tmp, paths[i]);
|
||||
std::strncpy(tmp, paths[i], 1024);
|
||||
}
|
||||
else
|
||||
{
|
||||
trace(1, "Path is too long");
|
||||
}
|
||||
strcpy(paths[i], paths[j]);
|
||||
strcpy(paths[j], tmp);
|
||||
std::strncpy(paths[i], paths[j], 1024);
|
||||
std::strncpy(paths[j], tmp, 1024);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -163,7 +163,7 @@ int rtkopenstat(const char *file, int level)
|
||||
}
|
||||
if (strlen(file) < 1025)
|
||||
{
|
||||
strcpy(file_stat, file);
|
||||
std::strncpy(file_stat, file, 1024);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -538,7 +538,7 @@ void decodefile(rtksvr_t *svr, int index)
|
||||
svr->nav.ne = svr->nav.nemax = nav.ne;
|
||||
svr->nav.peph = nav.peph;
|
||||
svr->ftime[index] = utc2gpst(timeget());
|
||||
strcpy(svr->files[index], file);
|
||||
std::strncpy(svr->files[index], file, MAXSTRPATH);
|
||||
|
||||
rtksvrunlock(svr);
|
||||
}
|
||||
@ -561,7 +561,7 @@ void decodefile(rtksvr_t *svr, int index)
|
||||
svr->nav.nc = svr->nav.ncmax = nav.nc;
|
||||
svr->nav.pclk = nav.pclk;
|
||||
svr->ftime[index] = utc2gpst(timeget());
|
||||
strcpy(svr->files[index], file);
|
||||
std::strncpy(svr->files[index], file, MAXSTRPATH);
|
||||
|
||||
rtksvrunlock(svr);
|
||||
}
|
||||
@ -991,11 +991,11 @@ int rtksvrstart(rtksvr_t *svr, int cycle, int buffsize, int *strs,
|
||||
/* set receiver and rtcm option */
|
||||
if (strlen(rcvopts[i]) < 256)
|
||||
{
|
||||
strcpy(svr->raw[i].opt, rcvopts[i]);
|
||||
std::strncpy(svr->raw[i].opt, rcvopts[i], 256);
|
||||
}
|
||||
if (strlen(rcvopts[i]) < 256)
|
||||
{
|
||||
strcpy(svr->rtcm[i].opt, rcvopts[i]);
|
||||
std::strncpy(svr->rtcm[i].opt, rcvopts[i], 256);
|
||||
}
|
||||
|
||||
/* connect dgps corrections */
|
||||
|
@ -414,11 +414,11 @@ char *decode_soltime(char *buff, const solopt_t *opt, gtime_t *time)
|
||||
|
||||
if (!strcmp(opt->sep, "\\t"))
|
||||
{
|
||||
strcpy(s, "\t");
|
||||
std::strncpy(s, "\t", 2);
|
||||
}
|
||||
else if (*opt->sep)
|
||||
{
|
||||
strcpy(s, opt->sep);
|
||||
std::strncpy(s, opt->sep, 64);
|
||||
}
|
||||
len = static_cast<int>(strlen(s));
|
||||
|
||||
@ -904,7 +904,7 @@ void decode_solopt(char *buff, solopt_t *opt)
|
||||
opt->times = TIMES_GPST;
|
||||
opt->posf = SOLF_GSIF;
|
||||
opt->degf = 0;
|
||||
strcpy(opt->sep, " ");
|
||||
std::strncpy(opt->sep, " ", 2);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -117,7 +117,7 @@ serial_t *openserial(const char *path, int mode, char *msg)
|
||||
}
|
||||
else if (strlen(path) < 128)
|
||||
{
|
||||
strcpy(port, path);
|
||||
std::strncpy(port, path, 128);
|
||||
}
|
||||
|
||||
for (i = 0; i < 10; i++)
|
||||
@ -422,7 +422,7 @@ file_t *openfile(const char *path, int mode, char *msg)
|
||||
file->fp = file->fp_tag = file->fp_tmp = file->fp_tag_tmp = nullptr;
|
||||
if (strlen(path) < MAXSTRPATH)
|
||||
{
|
||||
strcpy(file->path, path);
|
||||
std::strncpy(file->path, path, MAXSTRPATH);
|
||||
}
|
||||
if ((p = strstr(file->path, "::")))
|
||||
{
|
||||
@ -743,7 +743,7 @@ void decodetcppath(const char *path, char *addr, char *port, char *user,
|
||||
|
||||
if (strlen(path) < MAXSTRPATH)
|
||||
{
|
||||
strcpy(buff, path);
|
||||
std::strncpy(buff, path, MAXSTRPATH);
|
||||
}
|
||||
|
||||
if (!(p = strrchr(buff, '@')))
|
||||
@ -758,13 +758,13 @@ void decodetcppath(const char *path, char *addr, char *port, char *user,
|
||||
*q = '\0';
|
||||
if (str)
|
||||
{
|
||||
strcpy(str, q + 1);
|
||||
std::strncpy(str, q + 1, NTRIP_MAXSTR);
|
||||
}
|
||||
}
|
||||
*p = '\0';
|
||||
if (mntpnt)
|
||||
{
|
||||
strcpy(mntpnt, p + 1);
|
||||
std::strncpy(mntpnt, p + 1, 256);
|
||||
}
|
||||
}
|
||||
if ((p = strrchr(buff, '@')))
|
||||
@ -775,12 +775,12 @@ void decodetcppath(const char *path, char *addr, char *port, char *user,
|
||||
*q = '\0';
|
||||
if (passwd)
|
||||
{
|
||||
strcpy(passwd, q + 1);
|
||||
std::strncpy(passwd, q + 1, 256);
|
||||
}
|
||||
}
|
||||
if (user)
|
||||
{
|
||||
strcpy(user, buff);
|
||||
std::strncpy(user, buff, 256);
|
||||
}
|
||||
}
|
||||
else
|
||||
@ -793,12 +793,12 @@ void decodetcppath(const char *path, char *addr, char *port, char *user,
|
||||
*q = '\0';
|
||||
if (port)
|
||||
{
|
||||
strcpy(port, q + 1);
|
||||
std::strncpy(port, q + 1, 256);
|
||||
}
|
||||
}
|
||||
if (addr)
|
||||
{
|
||||
strcpy(addr, p);
|
||||
std::strncpy(addr, p, 1024);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1080,7 +1080,7 @@ void updatetcpsvr(tcpsvr_t *tcpsvr, char *msg)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
strcpy(saddr, tcpsvr->cli[i].saddr);
|
||||
std::strncpy(saddr, tcpsvr->cli[i].saddr, 256);
|
||||
n++;
|
||||
}
|
||||
if (n == 0)
|
||||
@ -1148,7 +1148,7 @@ int accsock(tcpsvr_t *tcpsvr, char *msg)
|
||||
memcpy(&tcpsvr->cli[i].addr, &addr, sizeof(addr));
|
||||
if (strlen(inet_ntoa(addr.sin_addr)) < 256)
|
||||
{
|
||||
strcpy(tcpsvr->cli[i].saddr, inet_ntoa(addr.sin_addr));
|
||||
std::strncpy(tcpsvr->cli[i].saddr, inet_ntoa(addr.sin_addr), 256);
|
||||
}
|
||||
sprintf(msg, "%s", tcpsvr->cli[i].saddr);
|
||||
tracet(2, "accsock: connected sock=%d addr=%s\n", tcpsvr->cli[i].sock, tcpsvr->cli[i].saddr);
|
||||
@ -1641,7 +1641,7 @@ int rspntrip_c(ntrip_t *ntrip, char *msg)
|
||||
{
|
||||
ntrip->buff[128] = '\0';
|
||||
}
|
||||
strcpy(msg, p);
|
||||
std::strncpy(msg, p, MAXSTRMSG);
|
||||
tracet(1, "rspntrip_s: %s nb=%d\n", msg, ntrip->nb);
|
||||
ntrip->nb = 0;
|
||||
ntrip->buff[0] = '\0';
|
||||
@ -1756,7 +1756,7 @@ ntrip_t *openntrip(const char *path, int type, char *msg)
|
||||
ntrip->url[k] = s_aux[k];
|
||||
}
|
||||
}
|
||||
strcpy(tpath, proxyaddr);
|
||||
std::strncpy(tpath, proxyaddr, MAXSTRPATH);
|
||||
}
|
||||
/* open tcp client stream */
|
||||
if (!(ntrip->tcp = opentcpcli(tpath, msg)))
|
||||
@ -1847,7 +1847,7 @@ void decodeftppath(const char *path, char *addr, char *file, char *user,
|
||||
}
|
||||
if (strlen(path) < MAXSTRPATH)
|
||||
{
|
||||
strcpy(buff, path);
|
||||
std::strncpy(buff, path, MAXSTRPATH);
|
||||
}
|
||||
|
||||
if ((p = strchr(buff, '/')))
|
||||
@ -1860,7 +1860,7 @@ void decodeftppath(const char *path, char *addr, char *file, char *user,
|
||||
sscanf(q + 2, "T=%d, %d, %d, %d", topts, topts + 1, topts + 2, topts + 3);
|
||||
}
|
||||
}
|
||||
strcpy(file, p + 1);
|
||||
std::strncpy(file, p + 1, 1024);
|
||||
*p = '\0';
|
||||
}
|
||||
else
|
||||
@ -1876,12 +1876,12 @@ void decodeftppath(const char *path, char *addr, char *file, char *user,
|
||||
*q = '\0';
|
||||
if (passwd)
|
||||
{
|
||||
strcpy(passwd, q + 1);
|
||||
std::strncpy(passwd, q + 1, 256);
|
||||
}
|
||||
}
|
||||
if (user)
|
||||
{
|
||||
strcpy(user, buff);
|
||||
std::strncpy(user, buff, 256);
|
||||
}
|
||||
}
|
||||
else
|
||||
@ -1889,7 +1889,7 @@ void decodeftppath(const char *path, char *addr, char *file, char *user,
|
||||
p = buff;
|
||||
}
|
||||
|
||||
strcpy(addr, p);
|
||||
std::strncpy(addr, p, 1024);
|
||||
}
|
||||
|
||||
|
||||
@ -1985,7 +1985,7 @@ void *ftpthread(void *arg)
|
||||
}
|
||||
|
||||
/* if local file exist, skip download */
|
||||
strcpy(tmpfile, local);
|
||||
std::strncpy(tmpfile, local, 1024);
|
||||
if ((p = strrchr(tmpfile, '.')) &&
|
||||
(!strcmp(p, ".z") || !strcmp(p, ".gz") || !strcmp(p, ".zip") ||
|
||||
!strcmp(p, ".Z") || !strcmp(p, ".GZ") || !strcmp(p, ".ZIP")))
|
||||
@ -1995,7 +1995,7 @@ void *ftpthread(void *arg)
|
||||
if ((fp = fopen(tmpfile, "rbe")))
|
||||
{
|
||||
fclose(fp);
|
||||
strcpy(ftp->local, tmpfile);
|
||||
std::strncpy(ftp->local, tmpfile, 1024);
|
||||
tracet(3, "ftpthread: file exists %s\n", ftp->local);
|
||||
ftp->state = 2;
|
||||
return nullptr;
|
||||
@ -2084,7 +2084,7 @@ void *ftpthread(void *arg)
|
||||
}
|
||||
if (strlen(tmpfile) < 1024)
|
||||
{
|
||||
strcpy(local, tmpfile);
|
||||
std::strncpy(local, tmpfile, 1024);
|
||||
}
|
||||
}
|
||||
else
|
||||
@ -2097,7 +2097,7 @@ void *ftpthread(void *arg)
|
||||
}
|
||||
if (strlen(local) < 1024)
|
||||
{
|
||||
strcpy(ftp->local, local);
|
||||
std::strncpy(ftp->local, local, 1024);
|
||||
}
|
||||
ftp->state = 2; /* ftp completed */
|
||||
|
||||
@ -2172,7 +2172,7 @@ int readftp(ftp_t *ftp, unsigned char *buff, int n, char *msg)
|
||||
{
|
||||
tracet(1, "readftp: ftp thread create error\n");
|
||||
ftp->state = 3;
|
||||
strcpy(msg, "ftp thread error");
|
||||
std::strncpy(msg, "ftp thread error", 17);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
@ -2203,7 +2203,7 @@ int readftp(ftp_t *ftp, unsigned char *buff, int n, char *msg)
|
||||
ftp->tnext = nextdltime(ftp->topts, 1);
|
||||
ftp->state = 0;
|
||||
|
||||
strcpy(msg, "");
|
||||
std::strncpy(msg, "", 1);
|
||||
|
||||
return static_cast<int>(p - buff);
|
||||
}
|
||||
@ -2291,7 +2291,7 @@ int stropen(stream_t *stream, int type, int mode, const char *path)
|
||||
stream->mode = mode;
|
||||
if (strlen(path) < MAXSTRPATH)
|
||||
{
|
||||
strcpy(stream->path, path);
|
||||
std::strncpy(stream->path, path, MAXSTRPATH);
|
||||
}
|
||||
stream->inb = stream->inr = stream->outb = stream->outr = 0;
|
||||
stream->tick = tickget();
|
||||
@ -2720,7 +2720,7 @@ void strsetdir(const char *dir)
|
||||
tracet(3, "strsetdir: dir=%s\n", dir);
|
||||
if (strlen(dir) < 1024)
|
||||
{
|
||||
strcpy(localdir, dir);
|
||||
std::strncpy(localdir, dir, 1024);
|
||||
}
|
||||
}
|
||||
|
||||
@ -2735,7 +2735,7 @@ void strsetproxy(const char *addr)
|
||||
tracet(3, "strsetproxy: addr=%s\n", addr);
|
||||
if (strlen(addr) < 256)
|
||||
{
|
||||
strcpy(proxyaddr, addr);
|
||||
std::strncpy(proxyaddr, addr, 256);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user