From 3a13f949a6708458a8b757a4c5855b08baeaef90 Mon Sep 17 00:00:00 2001 From: jaspervdg Date: Fri, 21 Mar 2008 08:35:54 +0000 Subject: [PATCH] Replace char buffer by std::string to prevent buffer overflow when computing the new PATH. --- src/main.cpp | 46 +++++++++++++++++++++++----------------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index d86b60540..b5ed8305d 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -423,7 +423,7 @@ static int _win32_set_inkscape_env(char *argv0) CHAR szFile[_MAX_FNAME]; CHAR szExt[_MAX_EXT]; - CHAR tmp[_MAX_EXT]; + std::string tmp; if (GetModuleFileName(NULL, szFullPath, sizeof(szFullPath)) == 0) { strcpy(szFullPath, argv0); @@ -434,32 +434,32 @@ static int _win32_set_inkscape_env(char *argv0) strcat(szFullPath, szDir); char *oldenv = getenv("PATH"); - strcpy(tmp, "PATH="); - strcat(tmp, szFullPath); - strcat(tmp, ";"); - strcat(tmp, szFullPath); - strcat(tmp, "python;"); - strcat(tmp, szFullPath); - strcat(tmp, "perl;"); + tmp = "PATH="; + tmp += szFullPath; + tmp += ";"; + tmp += szFullPath; + tmp += "python;"; + tmp += szFullPath; + tmp += "perl"; if(oldenv != NULL) { - strcat(tmp, ";"); - strcat(tmp, oldenv); - } - _putenv(tmp); + tmp += ";"; + tmp += oldenv; + } + _putenv(tmp.c_str()); oldenv = getenv("PYTHONPATH"); - strcpy(tmp, "PYTHONPATH="); - strcat(tmp, szFullPath); - strcat(tmp, "python;"); - strcat(tmp, szFullPath); - strcat(tmp, "python\\Lib;"); - strcat(tmp, szFullPath); - strcat(tmp, "python\\DLLs"); + tmp = "PYTHONPATH="; + tmp += szFullPath; + tmp += "python;"; + tmp += szFullPath; + tmp += "python\\Lib;"; + tmp += szFullPath; + tmp += "python\\DLLs"; if(oldenv != NULL) { - strcat(tmp, ";"); - strcat(tmp, oldenv); - } - _putenv(tmp); + tmp += ";"; + tmp += oldenv; + } + _putenv(tmp.c_str()); return 0; } -- 2.30.2