[Java] Some Kerberos Compiler Warnings on Windows

Windows上でのネイティブコードコンパイラの警告に関する古いバグがあります。このバグの担当エンジニアだったことがありますが、未だに対応を開始していません。不幸にもこのバグが原因でランタイムエラーが発生しています。本当に申し訳ありません(changesetはこちら)。
ご覧になるとわかる通り、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 件のコメント:

コメントを投稿