X-Git-Url: https://tinc-vpn.org/git/browse?a=blobdiff_plain;f=src%2Fscript.c;h=0b16c861d8e4d5930b306b7f3e2df4adde0ed0fe;hb=dff94d1df4228386ea9f523b1bfc37590ca31fd8;hp=cb3d29345e9bb49b18c1de4a045710e396036076;hpb=28b7a53b693f6b4e70218a926e68a36ece54cda1;p=tinc diff --git a/src/script.c b/src/script.c index cb3d2934..0b16c861 100644 --- a/src/script.c +++ b/src/script.c @@ -37,12 +37,12 @@ static void unputenv(const char *p) { ptrdiff_t len = e - p; #ifndef HAVE_UNSETENV -#ifdef HAVE_MINGW +#ifdef HAVE_WINDOWS // Windows requires putenv("FOO=") to unset %FOO% len++; #endif #endif - char var[len + 1]; + char *var = alloca(len + 1); strncpy(var, p, len); var[len] = 0; #ifdef HAVE_UNSETENV @@ -148,7 +148,7 @@ bool execute_script(const char *name, environment_t *env) { /* First check if there is a script */ -#ifdef HAVE_MINGW +#ifdef HAVE_WINDOWS if(!*scriptextension) { const char *pathext = getenv("PATHEXT"); @@ -159,9 +159,11 @@ bool execute_script(const char *name, environment_t *env) { size_t pathlen = strlen(pathext); size_t scriptlen = strlen(scriptname); - char fullname[scriptlen + pathlen + 1]; + + const size_t fullnamelen = scriptlen + pathlen + 1; + char *fullname = alloca(fullnamelen); char *ext = fullname + scriptlen; - strncpy(fullname, scriptname, sizeof(fullname)); + strncpy(fullname, scriptname, fullnamelen); const char *p = pathext; bool found = false;