By Weijun on Mar 21, 2011
Here is the changeset for it.
As you can see, we used the swprintf function in a not-so-standard way. The correct signature of the function is
swprintf(buffer, size, format, args...) but we didn't provide the
size argument. In the age of VC++ 2003, there were already warnings, but the runtime accepted this "overloaded" form and it ran fine. Starting from jdk7b108, we start using VC++ 2010 to build jdk7, the same warnings still show, but this time the runtime does not accept the form anymore, and a JVM crash is observed.
The lesson is never ignore compiler warnings.
The fix would be integrated in jdk7 builds in several weeks, and I've uploaded a copy here (32 bit build) in case anyone wants to try it out. I build it in a VirtualBox guest and hope it contains no virus.