現象
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 カスタマー サポート サービスに問い合わせて修正プログラムを入手してください。 Microsoft カスタマー サポート サービスの電話番号とサポート コストに関する情報の完全な一覧については、次の Microsoft Web サイトを参照してください。
http://support.microsoft.com/contactus/?ws=support注 特殊なケースでは、サポート呼び出しに通常発生する料金は、Microsoft サポート Professional が特定の更新プログラムによって問題が解決されると判断した場合に取り消される可能性があります。 ただし、特定の更新プログラムの対象とならない追加の質問および問題については、通常のサポート料金が適用されます。
前提条件
この修正プログラムを適用するには、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 ソフトウェア更新プログラムの説明に使用される標準用語の説明