ご覧になるとわかる通り、swprintf()関数を標準的ではない使い方で利用していました。正しいこの関数の使い方は
swprintf( buffer, size, format, args... )ですが、我々は引数サイズを与えていませんでした。Visual C++ 2003の時代にはすでに警告が出ていましたが、ランタイムがこの「オーバーロード」書式を許容しており、正常に動作しました。jdk7b108からは、VC++ 2010を使ってのJDK7のビルドを開始しました。まだ同じ警告が出ますが、今度はランタイムがこの書式を一切許容せず、JVMがクラッシュするようになりました。ランタイムはコンパイラの警告を無視しない、ということです。
この修正は数週でJDK7に取り込まれる予定で、動作確認したい人のために、修正版(32bit版)をこちらにUpしておきました。これはVirtualBox上のゲストOSでビルドし、ウイルスは含んでいません。
原文はこちら。
http://blogs.sun.com/wangwj/entry/some_kerberos_compiler_warnings_on
0 件のコメント:
コメントを投稿