Article: Q235601
Product(s): Microsoft C Compiler
Version(s): 4.0,4.1,4.2,5.0,6.0
Operating System(s):
Keyword(s): kbCRT kbVC500bug kbVC600bug kbDSupport kbGrpDSVCCompiler kbNoUpdate
Last Modified: 11-FEB-2002
-------------------------------------------------------------------------------
The information in this article applies to:
- Microsoft Visual C++, versions 4.0, 4.1
- Microsoft Visual C++, 32-bit Enterprise Edition, versions 4.2, 5.0, 6.0
- Microsoft Visual C++, 32-bit Professional Edition, versions 4.2, 5.0, 6.0
- Microsoft Visual C++, 32-bit Learning Edition, version 6.0
-------------------------------------------------------------------------------
SYMPTOMS
========
A memory leak results from calls to putenv in the following circumstances:
- An environment variable is removed.
- An environment variable is replaced.
- The input parameter does not contain an equal sign (=) character.
STATUS
======
Microsoft has confirmed this to be a bug in the Microsoft products listed at the
beginning of this article.
This problem was corrected in Microsoft Visual C++ .NET.
MORE INFORMATION
================
Steps to Reproduce Behavior
---------------------------
The following sample code demonstrates the types of calls that will cause a
memory leak.
#include <stdlib.h>
void main()
{
for (;;) {
putenv( "MYVAR1=mystring" ); // Replaces string MYVAR1
// after first iteration.
putenv( "MYVAR2=mystring" ); // Creates and removes MYVAR2.
putenv( "MYVAR2=" ); //
putenv( "MYVAR3" ); // Invalid string missing "=".
}
}
Additional query words: kbvc400
======================================================================
Keywords : kbCRT kbVC500bug kbVC600bug kbDSupport kbGrpDSVCCompiler kbNoUpdate
Technology : kbVCsearch kbVC400 kbAudDeveloper kbVC410 kbVC420 kbVC500 kbVC600 kbVC32bitSearch kbVC500Search
Version : :4.0,4.1,4.2,5.0,6.0
Issue type : kbbug
Solution Type : kbfix
=============================================================================