X-Git-Url: https://tinc-vpn.org/git/browse?a=blobdiff_plain;f=src%2Ftincctl.c;h=39bd326d5850966ff5280dc2555db33eafa20acf;hb=6bcd03c2027636f82ab7228566717d112df7bc6d;hp=64340c7f3f36f200907d9196554589453d6c7c56;hpb=b0f3a76e9bf8ceeab75c1e6f4dce6763aecddc5e;p=tinc diff --git a/src/tincctl.c b/src/tincctl.c index 64340c7f..39bd326d 100644 --- a/src/tincctl.c +++ b/src/tincctl.c @@ -194,11 +194,16 @@ static bool parse_options(int argc, char **argv) { /* netname "." is special: a "top-level name" */ - if(netname && !strcmp(netname, ".")) { + if(netname && (!*netname || !strcmp(netname, "."))) { free(netname); netname = NULL; } + if(netname && (strpbrk(netname, "\\/") || *netname == '.')) { + fprintf(stderr, "Invalid character in netname!\n"); + return false; + } + return true; } @@ -1019,6 +1024,7 @@ static struct { {"KeyExpire", VAR_SERVER}, {"LocalDiscovery", VAR_SERVER}, {"MACExpire", VAR_SERVER}, + {"MaxOutputBufferSize", VAR_SERVER}, {"MaxTimeout", VAR_SERVER}, {"Mode", VAR_SERVER}, {"Name", VAR_SERVER}, @@ -1028,26 +1034,32 @@ static struct { {"PrivateKey", VAR_SERVER | VAR_OBSOLETE}, {"PrivateKeyFile", VAR_SERVER}, {"ProcessPriority", VAR_SERVER}, + {"Proxy", VAR_SERVER}, {"ReplayWindow", VAR_SERVER}, {"StrictSubnets", VAR_SERVER}, {"TunnelServer", VAR_SERVER}, {"UDPRcvBuf", VAR_SERVER}, {"UDPSndBuf", VAR_SERVER}, + {"VDEGroup", VAR_SERVER}, + {"VDEPort", VAR_SERVER}, /* Host configuration */ {"Address", VAR_HOST | VAR_MULTIPLE}, {"Cipher", VAR_SERVER | VAR_HOST}, {"ClampMSS", VAR_SERVER | VAR_HOST}, {"Compression", VAR_SERVER | VAR_HOST}, {"Digest", VAR_SERVER | VAR_HOST}, + {"ECDSAPublicKey", VAR_HOST}, + {"ECDSAPublicKeyFile", VAR_SERVER | VAR_HOST}, {"IndirectData", VAR_SERVER | VAR_HOST}, {"MACLength", VAR_SERVER | VAR_HOST}, {"PMTU", VAR_SERVER | VAR_HOST}, {"PMTUDiscovery", VAR_SERVER | VAR_HOST}, {"Port", VAR_HOST}, - {"PublicKey", VAR_SERVER | VAR_HOST | VAR_OBSOLETE}, + {"PublicKey", VAR_HOST | VAR_OBSOLETE}, {"PublicKeyFile", VAR_SERVER | VAR_HOST | VAR_OBSOLETE}, {"Subnet", VAR_HOST | VAR_MULTIPLE}, {"TCPOnly", VAR_SERVER | VAR_HOST}, + {"Weight", VAR_HOST}, {NULL, 0} }; @@ -1337,6 +1349,9 @@ static int cmd_config(int argc, char *argv[]) { } bool check_id(const char *name) { + if(!name || !*name) + return false; + for(int i = 0; i < strlen(name); i++) { if(!isalnum(name[i]) && name[i] != '_') return false;