The following bug has been logged on the website:
Bug reference: 8461
Logged by: Benjamin Wassermann
Email address: [email protected]
PostgreSQL version: 9.3.0
Operating system: Windows
Description:
Hi!
We are trying to build our own PostgreSQL 9.3 using Visual Studio 2005 on
Windows XP.
If we use the created pg_dump we get some “Heap Corruptions” and no database
dump will be created.
When we use the precomiled binaries from PostgreSQL 9.3 and use this pg_dump
we do NOT get any heap corruption and it works as expected.
To reproduce the bug you need a Microsoft Visual Studio 2005 with Version
8.0.50727.42.
Buildsteps:
1. Download the postgresql sources 9.3
2. Open a visual studio commandline and change to folder
"postgresql-9.2.3\src\tools\msvc". Execute the command "perl mkvcbuild.pl"
(make sure "ActivePerl" is installed, where using version "5.12.2 Build
1202").
3. In the root folder is now a pgpsql.sln, which u can open in visual
studio
4. Now change the "Build-Target" to Release
5. Now build the Projects in following steps and configuartions
libpgport:
General > Use of MFC: "Use MFC in a Static Libary"
Libarian: Ingore Specific Libary "Nafxcwd.lib" and "Libcmtd.lib"
-> Build
libpqtypes:
General > Use of MFC: "Use MFC in a Static Libary"
-> Build
libpq:
General > Use of MFC: "Use MFC in a Static Libary"
Linker > Additional Dependencies: "ShFolder.lib" and
"Advapi32.lib"
-> Build
libecpg:
General > Use of MFC: "Use MFC in a Static Libary"
-> Build
libpgcommon:
General > Use of MFC: "Use MFC in a Static Libary"
-> Build
psql:
General > Use of MFC: "Use MFC in a Static Libary"
Linker > Additional Dependencies: "Advapi32.lib"
Rename the Function _dosmaperr to _test_dosmaperr
-> Build
If there is a error like: "ERROR: psqlscan.c could not
be found" just do
the following:
Open a commandline and call "flex.exe "<Path to
sources>\postgresql-9.2.3\src\bin\psql\psqlscan.l"
(http://gnuwin32.sourceforge.net/install.html). Now copy the created file to
"\postgresql-9.2.3\src\bin\psql\psqlscan.c".
-> Build
pg_dump:
General > Use of MFC: "Use MFC in a Static Libary"
Linker > Additional Dependencies: "Advapi32.lib" and "zlib.lib"
(path
example with default installation: "C:\Programme\GnuWin32\lib\zlib.lib")
C/C++ > Preprocessor Definitions: "HAVE_LIBZ"
C/C++ > Additional Include Directories:
C:\Programme\GnuWin32\include
-> Build
Now we have installed a PostgreSQL Server 9.3 on the same machine.
In Visual Studio we defined as "Command Arguments" the following:
"-h "localhost" -p 5432 -U postgres -f "C:\test.bak" -F c test"
Now start debugging and u will get the Heap corruption in Visual Studio.
Exactly u will get the following ASSERTION:
---------------------------
Microsoft Visual C++ Debug Library
---------------------------
Debug Assertion Failed!
Program: ...
File: dbgheap.c
Line: 1252
Expression: _CrtIsValidHeapPointer(pUserData)
For information on how your program can cause an assertion
failure, see the Visual C++ documentation on asserts.
(Press Retry to debug the application)
---------------------------
Abbrechen Wiederholen Ignorieren
---------------------------
Which is caused from the Function "dumpFunc" at line 9942 ff.
...
free(funcsig);
...
Hope you can reproduce this Bug.
Is there a workaround we could use?
Regards
Benjamin
--
Sent via pgsql-bugs mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs