From 163f455fc78ed89faac3b1e93773c527f4a4731c Mon Sep 17 00:00:00 2001 From: Rehan MALAK Date: Mon, 13 Aug 2018 17:46:08 +0200 Subject: [PATCH 1/2] add '\0' terminal character --- examples/rpl-border-router/webserver/httpd-simple.c | 6 ++++-- tools/serial-io/tunslip6.c | 11 +++++++---- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/examples/rpl-border-router/webserver/httpd-simple.c b/examples/rpl-border-router/webserver/httpd-simple.c index d8ce76816..7ce984e6a 100644 --- a/examples/rpl-border-router/webserver/httpd-simple.c +++ b/examples/rpl-border-router/webserver/httpd-simple.c @@ -128,7 +128,8 @@ PT_THREAD(handle_output(struct httpd_state *s)) s->script = NULL; s->script = httpd_simple_get_script(&s->filename[1]); if(s->script == NULL) { - strncpy(s->filename, "/notfound.html", sizeof(s->filename)); + strncpy(s->filename, "/notfound.html", sizeof(s->filename) - 1); + s->filename[sizeof(s->filename) - 1] = '\0'; PT_WAIT_THREAD(&s->outputpt, send_headers(s, http_header_404)); PT_WAIT_THREAD(&s->outputpt, @@ -170,7 +171,8 @@ PT_THREAD(handle_input(struct httpd_state *s)) urlconv_tofilename(s->filename, s->inputbuf, sizeof(s->filename)); #else /* URLCONV */ if(s->inputbuf[1] == ISO_space) { - strncpy(s->filename, http_index_html, sizeof(s->filename)); + strncpy(s->filename, http_index_html, sizeof(s->filename) - 1); + s->filename[sizeof(s->filename) - 1] = '\0'; } else { s->inputbuf[PSOCK_DATALEN(&s->sin) - 1] = 0; strncpy(s->filename, s->inputbuf, sizeof(s->filename)); diff --git a/tools/serial-io/tunslip6.c b/tools/serial-io/tunslip6.c index aa8b5b9fd..548bc1cd6 100644 --- a/tools/serial-io/tunslip6.c +++ b/tools/serial-io/tunslip6.c @@ -579,8 +579,10 @@ tun_alloc(char *dev, int tap) * IFF_NO_PI - Do not provide packet information */ ifr.ifr_flags = (tap ? IFF_TAP : IFF_TUN) | IFF_NO_PI; - if(*dev != 0) - strncpy(ifr.ifr_name, dev, IFNAMSIZ); + if(*dev != 0) { + strncpy(ifr.ifr_name, dev, sizeof(ifr.ifr_name) - 1); + ifr.ifr_name[sizeof(ifr.ifr_name) - 1] = '\0'; + } if((err = ioctl(fd, TUNSETIFF, (void *) &ifr)) < 0 ) { close(fd); @@ -806,10 +808,11 @@ main(int argc, char **argv) case 't': if(strncmp("/dev/", optarg, 5) == 0) { - strncpy(tundev, optarg + 5, sizeof(tundev)); + strncpy(tundev, optarg + 5, sizeof(tundev) - 1); } else { - strncpy(tundev, optarg, sizeof(tundev)); + strncpy(tundev, optarg, sizeof(tundev) - 1); } + tundev[sizeof(tundev) - 1] = '\0'; break; case 'a': From 9a5373f267d1630f4e2661bec7bfde1c07c8f2ff Mon Sep 17 00:00:00 2001 From: Rehan MALAK Date: Thu, 16 Aug 2018 14:00:54 +0200 Subject: [PATCH 2/2] fix indentation --- tools/serial-io/tunslip6.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/serial-io/tunslip6.c b/tools/serial-io/tunslip6.c index 548bc1cd6..48b0ecd0f 100644 --- a/tools/serial-io/tunslip6.c +++ b/tools/serial-io/tunslip6.c @@ -795,9 +795,9 @@ main(int argc, char **argv) case 's': if(strncmp("/dev/", optarg, 5) == 0) { - siodev = optarg + 5; + siodev = optarg + 5; } else { - siodev = optarg; + siodev = optarg; } break;