X-Git-Url: https://tinc-vpn.org/git/browse?p=tinc;a=blobdiff_plain;f=src%2Fscript.c;h=4cea3837900fe93322bce9bee0dc97b5efe3e60d;hp=5ca56737df8eed573a7bc3de36425422aedfff44;hb=cd5f222cc4e769395a7c6c8646abefe1d657f844;hpb=d4410d0cce40929db9a0ce7042ef962f1867234d diff --git a/src/script.c b/src/script.c index 5ca56737..4cea3837 100644 --- a/src/script.c +++ b/src/script.c @@ -75,9 +75,11 @@ bool execute_script(const char *name, char **envp) { #ifdef HAVE_MINGW if(!*scriptextension) { const char *pathext = getenv("PATHEXT") ?: ".COM;.EXE;.BAT;.CMD"; - char fullname[strlen(scriptname) + strlen(pathext)]; - char *ext = fullname + strlen(scriptname); - strcpy(fullname, scriptname); + size_t pathlen = strlen(pathext); + size_t scriptlen = strlen(scriptname); + char fullname[scriptlen + pathlen + 1]; + char *ext = fullname + scriptlen; + strncpy(fullname, scriptname, sizeof fullname); const char *p = pathext; bool found = false; @@ -88,7 +90,7 @@ bool execute_script(const char *name, char **envp) { ext[q - p] = 0; q++; } else { - strcpy(ext, p); + strncpy(ext, p, pathlen + 1); } if((found = !access(fullname, F_OK))) break;