現象
Msvcr90.dll ファイルを使用して x64 プラットフォーム用にビルドされるように構成されたアプリケーションがあります。 アプリケーションが strncpy 関数を呼び出します。 アプリケーションを実行すると、Visual Studio の Just-In-Time デバッガー ウィンドウに次のエラー メッセージが表示されることがあります。
注
'application_name' でハンドルされていない win32 例外が発生しました
呼び出し履歴チェックすると、Msvcr90.dll ファイルでアクセス違反がトリガーされ、アプリケーションが strncpy 関数で応答しなくなったことがわかる場合があります。 この問題は、以下の条件に該当する場合に発生します。
- ソース バッファーは、割り当てられたページの末尾まで拡張されます。
- このページの次のバイトは、実行中のプロセスに属していません。
- コピーされる長さは 8 の偶数倍数です。
- コピーされる長さには、ソース バッファーの最後のバイトが含まれます。
原因
この問題は、strncpy 関数がソース バッファーの次のバイトにアクセスしようとするため発生します。 この問題は、一部の CRT ライブラリ関数の新しい最適化によって発生します。
解決策
修正プログラムの情報
サポートされている修正プログラムが Microsoft から提供されています。 ただし、この記事で説明されている問題のみを修正することを目的としています。 この特定の問題が発生しているシステムにのみ適用してください。 この修正プログラムは、追加のテストを受ける可能性があります。 したがって、この問題による深刻な影響がない場合は、この修正プログラムを含む次の Visual Studio 2008 Service Pack を待つことをお勧めします。
この問題を直ちに解決するには、Microsoft Customer Support Services に連絡して修正プログラムを入手してください。 Microsoft Customer Support Services の電話番号一覧およびサポート料金については、次のマイクロソフト Web サイトを参照してください。
http://support.microsoft.com/contactus/?ws=support注: Microsoft サポート担当者が、特定の更新プログラムを適用することにより問題が解決されると判断した場合、まれに通常サポート依頼にかかる料金が免除されることがあります。 ただし、特定の更新プログラムの対象とならない追加の質問および問題については、通常のサポート料金が適用されます。
前提条件
この修正プログラムを適用するには、Visual Studio 2008 Service Pack 1 がインストールされている必要があります。
再起動の必要性
この修正プログラムの適用後にコンピューターを再起動する必要はありません。
修正プログラムの置き換えに関する情報
この修正プログラムを適用しても、他の修正プログラムは置き換えられません。
ファイル情報
修正プログラム (英語版) のファイル属性は次表のとおりです。ただし、これより新しい修正プログラムがリリースされている可能性もあります。 これらのファイルの日付と時刻は世界協定時 (UTC) で記載されています。 ファイル情報に表示される時刻は、ローカル時刻に変換されています。 UTC とローカル時刻との時差を確認するには、[コントロール パネル] の [日付と時刻] の [タイム ゾーン] タブを使用してください。
| ファイル名 | ファイルのバージョン | ファイル サイズ | 日付 | 時刻 | プラットフォーム |
|---|---|---|---|---|---|
| Atl90.dll | 9.0.30729.162 | 159,552 | 2008 年 10 月 14 日 | 02:32 | x86 |
| Mfc90.dll | 9.0.30729.162 | 5,084,480 | 2008 年 10 月 14 日 | 01:12 | x64 |
| Mfc90.dll | 9.0.30729.162 | 3,766,080 | 2008 年 10 月 14 日 | 02:32 | x86 |
| Mfc90chs.dll | 9.0.30729.162 | 36,680 | 2008 年 10 月 14 日 | 01:12 | x64 |
| Mfc90chs.dll | 9.0.30729.162 | 36,680 | 2008 年 10 月 14 日 | 02:32 | x86 |
| Mfc90cht.dll | 9.0.30729.162 | 37,704 | 2008 年 10 月 14 日 | 01:12 | x64 |
| Mfc90cht.dll | 9.0.30729.162 | 37,704 | 2008 年 10 月 14 日 | 02:32 | x86 |
| Mfc90d.dll | 9.0.30729.162 | 7,419,200 | 2008 年 10 月 14 日 | 01:12 | x64 |
| Mfc90d.dll | 9.0.30729.162 | 5,934,912 | 2008 年 10 月 14 日 | 02:32 | x86 |
| Mfc90deu.dll | 9.0.30729.162 | 64,328 | 2008 年 10 月 14 日 | 01:12 | x64 |
| Mfc90deu.dll | 9.0.30729.162 | 64,328 | 2008 年 10 月 14 日 | 02:32 | x86 |
| Mfc90enu.dll | 9.0.30729.162 | 54,600 | 2008 年 10 月 14 日 | 01:12 | x64 |
| Mfc90enu.dll | 9.0.30729.162 | 54,600 | 2008 年 10 月 14 日 | 02:32 | x86 |
| Mfc90esn.dll | 9.0.30729.162 | 62,792 | 2008 年 10 月 14 日 | 01:12 | x64 |
| Mfc90esn.dll | 9.0.30729.162 | 62,792 | 2008 年 10 月 14 日 | 02:32 | x86 |
| Mfc90esp.dll | 9.0.30729.162 | 62,792 | 2008 年 10 月 14 日 | 01:12 | x64 |
| Mfc90esp.dll | 9.0.30729.162 | 62,792 | 2008 年 10 月 14 日 | 02:32 | x86 |
| Mfc90fra.dll | 9.0.30729.162 | 63,816 | 2008 年 10 月 14 日 | 01:12 | x64 |
| Mfc90fra.dll | 9.0.30729.162 | 63,816 | 2008 年 10 月 14 日 | 02:32 | x86 |
| Mfc90ita.dll | 9.0.30729.162 | 62,280 | 2008 年 10 月 14 日 | 01:12 | x64 |
| Mfc90ita.dll | 9.0.30729.162 | 62,280 | 2008 年 10 月 14 日 | 02:32 | x86 |
| Mfc90jpn.dll | 9.0.30729.162 | 44,360 | 2008 年 10 月 14 日 | 01:12 | x64 |
| Mfc90jpn.dll | 9.0.30729.162 | 44,360 | 2008 年 10 月 14 日 | 02:32 | x86 |
| Mfc90kor.dll | 9.0.30729.162 | 43,848 | 2008 年 10 月 14 日 | 01:12 | x64 |
| Mfc90kor.dll | 9.0.30729.162 | 43,848 | 2008 年 10 月 14 日 | 02:32 | x86 |
| Mfc90u.dll | 9.0.30729.162 | 5,103,424 | 2008 年 10 月 14 日 | 01:12 | x64 |
| Mfc90u.dll | 9.0.30729.162 | 3,781,440 | 2008 年 10 月 14 日 | 02:32 | x86 |
| Mfc90ud.dll | 9.0.30729.162 | 7,464,264 | 2008 年 10 月 14 日 | 01:12 | x64 |
| Mfc90ud.dll | 9.0.30729.162 | 5,980,488 | 2008 年 10 月 14 日 | 02:32 | x86 |
| Mfcm90.dll | 9.0.30729.162 | 67,072 | 2008 年 10 月 14 日 | 00:50 | x64 |
| Mfcm90.dll | 9.0.30729.162 | 59,904 | 2008 年 10 月 14 日 | 00:20 | x86 |
| Mfcm90d.dll | 9.0.30729.162 | 93,184 | 2008 年 10 月 14 日 | 00:50 | x64 |
| Mfcm90d.dll | 9.0.30729.162 | 80,896 | 2008 年 10 月 14 日 | 00:20 | x86 |
| Mfcm90u.dll | 9.0.30729.162 | 67,072 | 2008 年 10 月 14 日 | 00:50 | x64 |
| Mfcm90u.dll | 9.0.30729.162 | 59,904 | 2008 年 10 月 14 日 | 00:20 | x86 |
| Mfcm90ud.dll | 9.0.30729.162 | 93,696 | 2008 年 10 月 14 日 | 00:50 | x64 |
| Mfcm90ud.dll | 9.0.30729.162 | 80,896 | 2008 年 10 月 14 日 | 00:20 | x86 |
| Mfcmifc80u.dll | 9.0.30729.162 | 14,152 | 2008 年 10 月 20 日 | 17:19 | x86 |
| Microsoft.visualc.stlclr.dll | 9.0.30729.162 | 49,000 | 2008 年 10 月 20 日 | 17:19 | x86 |
| Msvcm90.dll | 9.0.30729.162 | 225,280 | 2008 年 10 月 13 日 | 21:59 | x86 |
| Msvcm90.dll | 9.0.30729.162 | 324,096 | 2008 年 10 月 13 日 | 22:36 | IA-64 |
| Msvcm90.dll | 9.0.30729.162 | 245,760 | 2008 年 10 月 13 日 | 23:40 | x64 |
| Msvcm90d.dll | 9.0.30729.162 | 312,832 | 2008 年 10 月 13 日 | 21:59 | x86 |
| Msvcm90d.dll | 9.0.30729.162 | 429,568 | 2008 年 10 月 13 日 | 22:37 | IA-64 |
| Msvcm90d.dll | 9.0.30729.162 | 333,312 | 2008 年 10 月 13 日 | 23:40 | x64 |
| Msvcp90.dll | 9.0.30729.162 | 1,467,208 | 2008 年 10 月 14 日 | 00:56 | IA-64 |
| Msvcp90.dll | 9.0.30729.162 | 854,344 | 2008 年 10 月 14 日 | 01:12 | x64 |
| Msvcp90.dll | 9.0.30729.162 | 570,696 | 2008 年 10 月 14 日 | 02:32 | x86 |
| Msvcp90d.dll | 9.0.30729.162 | 2,514,760 | 2008 年 10 月 14 日 | 00:56 | IA-64 |
| Msvcp90d.dll | 9.0.30729.162 | 1,121,608 | 2008 年 10 月 14 日 | 01:12 | x64 |
| Msvcp90d.dll | 9.0.30729.162 | 873,288 | 2008 年 10 月 14 日 | 02:32 | x86 |
| Msvcr90.dll | 9.0.30729.162 | 1,504,584 | 2008 年 10 月 14 日 | 00:56 | IA-64 |
| Msvcr90.dll | 9.0.30729.162 | 624,456 | 2008 年 10 月 14 日 | 01:12 | x64 |
| Msvcr90.dll | 9.0.30729.162 | 653,640 | 2008 年 10 月 14 日 | 02:32 | x86 |
| Msvcr90d.dll | 9.0.30729.162 | 3,599,688 | 2008 年 10 月 14 日 | 00:56 | IA-64 |
| Msvcr90d.dll | 9.0.30729.162 | 1,349,960 | 2008 年 10 月 14 日 | 01:12 | x64 |
| Msvcr90d.dll | 9.0.30729.162 | 1,178,440 | 2008 年 10 月 14 日 | 02:32 | x86 |
| Vcomp90.dll | 9.0.30729.162 | 142,664 | 2008 年 10 月 14 日 | 00:56 | IA-64 |
| Vcomp90.dll | 9.0.30729.162 | 57,672 | 2008 年 10 月 14 日 | 01:12 | x64 |
| Vcomp90.dll | 9.0.30729.162 | 52,040 | 2008 年 10 月 14 日 | 02:32 | x86 |
| Vcomp90d.dll | 9.0.30729.162 | 317,256 | 2008 年 10 月 14 日 | 00:56 | IA-64 |
| Vcomp90d.dll | 9.0.30729.162 | 105,800 | 2008 年 10 月 14 日 | 01:12 | x64 |
| Vcomp90d.dll | 9.0.30729.162 | 89,416 | 2008 年 10 月 14 日 | 02:32 | x86 |
| Vcomp90ui.dll | 9.0.30729.162 | 11,592 | 2008 年 10 月 20 日 | 17:19 | x86 |
| Vcredist_ia64.exe | 9.0.30729.162 | 4,712,272 | 2008 年 10 月 14 日 | 1,932 | x86 |
| Vcredist_x64.exe | 9.0.30729.162 | 5,236,560 | 2008 年 10 月 14 日 | 1,936 | x86 |
| Vcredist_x86.exe | 9.0.30729.162 | 4,496,208 | 2008 年 10 月 14 日 | 1,928 | x86 |
回避策
この問題を回避するには、次のいずれかの方法を使用します。
「現象」に記載されている 4 つの条件のいずれかを変更します。
strncpy 関数を、memcpyfunction 関数や lstrcpyn 関数など、同様の機能を持つ他の関数に置き換えます。
注: これらのコピー関数は若干異なります。 たとえば、指定された長さより前に null バイトが検出された場合、memcpy 関数は文字列のコピーを終了しません。
状態
Microsoft は、これが "適用対象" セクションに記載されている Microsoft 製品の問題であることを確認しました。
追加情報
ソフトウェア更新プログラムに関する用語の関連情報を参照するには、以下のサポート技術情報番号をクリックしてください。
824684 Microsoft のソフトウェア更新プログラムの説明で使用される一般的な用語の解説