Code

Replace char buffer by std::string to prevent buffer overflow when computing the...
authorjaspervdg <jaspervdg@users.sourceforge.net>
Fri, 21 Mar 2008 08:35:54 +0000 (08:35 +0000)
committerjaspervdg <jaspervdg@users.sourceforge.net>
Fri, 21 Mar 2008 08:35:54 +0000 (08:35 +0000)
src/main.cpp

index d86b60540930441ad0c97fa36a5e26aa80e64262..b5ed8305dabff9207613b40face5782c951411cc 100644 (file)
@@ -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;
 }