X-Git-Url: https://tinc-vpn.org/git/browse?a=blobdiff_plain;f=src%2Ftincctl.c;h=ca354bc08957a39296f7a80c6bae7667978f8a4e;hb=ed8ce60845dc0568840c64c692838136f342fa54;hp=b944e5c451c8753dd6b28660c8f111e6cfdc950d;hpb=dea722c4aca9a8cfa463807d279aa10cc6a0fc64;p=tinc diff --git a/src/tincctl.c b/src/tincctl.c index b944e5c4..ca354bc0 100644 --- a/src/tincctl.c +++ b/src/tincctl.c @@ -187,11 +187,15 @@ static bool parse_options(int argc, char **argv) { } } - if(!netname) { - netname = getenv("NETNAME"); - if(netname) - netname = xstrdup(netname); - } + if(!netname && (netname = getenv("NETNAME"))) + netname = xstrdup(netname); + + /* netname "." is special: a "top-level name" */ + + if(netname && !strcmp(netname, ".")) { + free(netname); + netname = NULL; + } return true; } @@ -1190,7 +1194,7 @@ static int cmd_config(int argc, char *argv[]) { while(fgets(buf1, sizeof buf1, f)) { buf1[sizeof buf1 - 1] = 0; - strcpy(buf2, buf1); + strncpy(buf2, buf1, sizeof buf2); // Parse line in a simple way char *bvalue; @@ -1234,6 +1238,14 @@ static int cmd_config(int argc, char *argv[]) { fprintf(stderr, "Error writing to temporary file %s: %s\n", tmpfile, strerror(errno)); return 1; } + + // Add newline if it is missing... + if(*buf1 && buf1[strlen(buf1) - 1] != '\n') { + if(fputc('\n', tf) < 0) { + fprintf(stderr, "Error writing to temporary file %s: %s\n", tmpfile, strerror(errno)); + return 1; + } + } } // Make sure we read everything...