VS2012でコンパイルされた次のコードを実行しようとすると、メモリが破損しているようです。
VS2010以前では正常に動作します。
char *var1 = getenv("var1"); // Value for var1 is correct here
char var2S[MAXSTRING];
sprintf(var2S, "VAR2=%s/a/%s/b", var1, getValue()); //Var2 looks correct
static const char *env_string = strdup(const_cast<char *>(var2S));
putenv((char *)env_string); // Value for var1 is corrupt after this call