X-Git-Url: https://www.tinc-vpn.org/git/browse?a=blobdiff_plain;f=src%2Fscript.c;h=b380931f2ea09c91b843eca9c3fd485ad0a8a3ba;hb=cfc9fee931c70554353ce6c4acc3407baac08745;hp=cb3d29345e9bb49b18c1de4a045710e396036076;hpb=08f1e0cd33812f9d972dd7c59021443a8d02d0e0;p=tinc diff --git a/src/script.c b/src/script.c index cb3d2934..b380931f 100644 --- a/src/script.c +++ b/src/script.c @@ -42,7 +42,7 @@ static void unputenv(const char *p) { len++; #endif #endif - char var[len + 1]; + char *var = alloca(len + 1); strncpy(var, p, len); var[len] = 0; #ifdef HAVE_UNSETENV @@ -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;