mirror of
				https://github.com/gnss-sdr/gnss-sdr
				synced 2025-10-31 07:13:03 +00:00 
			
		
		
		
	Ensure that buffers are always terminated
This commit is contained in:
		| @@ -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'; | ||||||
|         } |         } | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Carles Fernandez
					Carles Fernandez