Symptômes

Vous avez une application qui est configurée pour être générée pour une plate-forme x 64, en utilisant le fichier Msvcr90.dll. L’application appelle la fonction strncpy . Lorsque vous exécutez l’application, le message d’erreur suivant peut s’afficher dans la fenêtre du débogueur Just Visual Studio :

Une exception win32 non gérée s'est produite dans «nom de l'application»

Lorsque vous vérifiez la pile des appels, vous pouvez trouver une violation d’accès a été déclenchée dans le fichier Msvcr90.dll et que l’application a cessé de répondre dans la fonction strncpy . Ce problème se produit lorsque les conditions suivantes sont remplies :

  • La mémoire tampon source s’étend jusqu'à la fin d’une page allouée.

  • L’octet suivant après cette page n’appartient pas au processus en cours d’exécution.

  • La longueur doit être copié est un multiple de 8.

  • La longueur doit être copié inclut le dernier octet de la mémoire tampon source.

Cause

Ce problème se produit car la fonction strncpy essaie d’accéder à l’octet suivant après la mémoire tampon source. Ce problème est introduit par les nouvelles méthodes d’optimisation pour certaines fonctions de la bibliothèque CRT.

Résolution

Informations sur le correctif

Un correctif pris en charge est désormais disponible auprès de Microsoft. Toutefois, il est conçu pour résoudre uniquement le problème décrit dans cet article. Il s’applique uniquement aux systèmes rencontrant ce problème spécifique. Ce correctif peut subir des tests supplémentaires. Par conséquent, si vous n’êtes pas sérieusement concerné par ce problème, nous vous recommandons d’attendre le prochain service pack de Visual Studio 2008 qui comprendra ce correctif.

Pour résoudre ce problème immédiatement, contactez les Services de Support technique Microsoft pour obtenir le correctif. Pour obtenir une liste complète des numéros de téléphone des Services de Support technique Microsoft et des informations sur les coûts de support, visitez le site Web de Microsoft à l’adresse suivante :

http://support.microsoft.com/contactus/?ws=supportRemarque Dans des cas particuliers, des frais généralement encourus pour les appels au support technique peuvent être annulés si un technicien du support technique Microsoft détermine qu'une mise à jour spécifique peut résoudre votre problème. Les coûts habituels du support technique s’appliqueront aux autres questions et problèmes qui ne relèvent pas de la mise à jour spécifique en question.

Conditions préalables

Vous devez disposer de Visual Studio 2008 Service Pack 1 pour appliquer ce correctif.

Nécessite un redémarrage

Vous n’êtes pas obligé de redémarrer l’ordinateur après avoir appliqué ce correctif.

Informations de remplacement du correctif

Ce correctif ne remplace aucun autre correctif.

Informations sur les fichiers

La version anglaise de ce correctif dispose des attributs de fichier (ou version ultérieure) répertoriés dans le tableau suivant. Les dates et heures de ces fichiers sont répertoriées en temps universel coordonné (UTC). Lorsque vous affichez les informations de fichier, elles sont converties en heure locale. Pour trouver la différence entre l’UTC et l’heure locale, utilisez l’onglet fuseau horaire dans l’élément de Date et heure dans le panneau de configuration.

Nom de fichier

Version de fichier

Taille du fichier

Date

Heure

Plateforme

Atl90.dll

9.0.30729.162

159,552

14-Oct-2008

02:32

x86

Mfc90.dll

9.0.30729.162

5,084,480

14-Oct-2008

01:12

x64

Mfc90.dll

9.0.30729.162

3,766,080

14-Oct-2008

02:32

x86

Mfc90chs.dll

9.0.30729.162

36,680

14-Oct-2008

01:12

x64

Mfc90chs.dll

9.0.30729.162

36,680

14-Oct-2008

02:32

x86

Mfc90cht.dll

9.0.30729.162

37,704

14-Oct-2008

01:12

x64

Mfc90cht.dll

9.0.30729.162

37,704

14-Oct-2008

02:32

x86

Mfc90d.dll

9.0.30729.162

7,419,200

14-Oct-2008

01:12

x64

Mfc90d.dll

9.0.30729.162

5,934,912

14-Oct-2008

02:32

x86

Mfc90deu.dll

9.0.30729.162

64,328

14-Oct-2008

01:12

x64

Mfc90deu.dll

9.0.30729.162

64,328

14-Oct-2008

02:32

x86

Mfc90enu.dll

9.0.30729.162

54,600

14-Oct-2008

01:12

x64

Mfc90enu.dll

9.0.30729.162

54,600

14-Oct-2008

02:32

x86

Mfc90esn.dll

9.0.30729.162

62,792

14-Oct-2008

01:12

x64

Mfc90esn.dll

9.0.30729.162

62,792

14-Oct-2008

02:32

x86

Mfc90esp.dll

9.0.30729.162

62,792

14-Oct-2008

01:12

x64

Mfc90esp.dll

9.0.30729.162

62,792

14-Oct-2008

02:32

x86

Mfc90fra.dll

9.0.30729.162

63,816

14-Oct-2008

01:12

x64

Mfc90fra.dll

9.0.30729.162

63,816

14-Oct-2008

02:32

x86

Mfc90ita.dll

9.0.30729.162

62,280

14-Oct-2008

01:12

x64

Mfc90ita.dll

9.0.30729.162

62,280

14-Oct-2008

02:32

x86

Mfc90jpn.dll

9.0.30729.162

44,360

14-Oct-2008

01:12

x64

Mfc90jpn.dll

9.0.30729.162

44,360

14-Oct-2008

02:32

x86

Mfc90kor.dll

9.0.30729.162

43,848

14-Oct-2008

01:12

x64

Mfc90kor.dll

9.0.30729.162

43,848

14-Oct-2008

02:32

x86

Mfc90u.dll

9.0.30729.162

5,103,424

14-Oct-2008

01:12

x64

Mfc90u.dll

9.0.30729.162

3,781,440

14-Oct-2008

02:32

x86

Mfc90ud.dll

9.0.30729.162

7,464,264

14-Oct-2008

01:12

x64

Mfc90ud.dll

9.0.30729.162

5,980,488

14-Oct-2008

02:32

x86

Mfcm90.dll

9.0.30729.162

67,072

14-Oct-2008

00:50

x64

Mfcm90.dll

9.0.30729.162

59,904

14-Oct-2008

00:20

x86

Mfcm90d.dll

9.0.30729.162

93,184

14-Oct-2008

00:50

x64

Mfcm90d.dll

9.0.30729.162

80,896

14-Oct-2008

00:20

x86

Mfcm90u.dll

9.0.30729.162

67,072

14-Oct-2008

00:50

x64

Mfcm90u.dll

9.0.30729.162

59,904

14-Oct-2008

00:20

x86

Mfcm90ud.dll

9.0.30729.162

93,696

14-Oct-2008

00:50

x64

Mfcm90ud.dll

9.0.30729.162

80,896

14-Oct-2008

00:20

x86

Mfcmifc80u.dll

9.0.30729.162

14,152

20-Oct-2008

17:19

x86

Microsoft.visualc.stlclr.dll

9.0.30729.162

49,000

20-Oct-2008

17:19

x86

Msvcm90.dll

9.0.30729.162

225 280

13-Oct-2008

21:59

x86

Msvcm90.dll

9.0.30729.162

324,096

13-Oct-2008

22:36

IA-64

Msvcm90.dll

9.0.30729.162

245,760

13-Oct-2008

23:40

x64

Msvcm90d.dll

9.0.30729.162

312,832

13-Oct-2008

21:59

x86

Msvcm90d.dll

9.0.30729.162

429,568

13-Oct-2008

22:37

IA-64

Msvcm90d.dll

9.0.30729.162

333,312

13-Oct-2008

23:40

x64

Msvcp90.dll

9.0.30729.162

1,467,208

14-Oct-2008

00:56

IA-64

Msvcp90.dll

9.0.30729.162

854,344

14-Oct-2008

01:12

x64

Msvcp90.dll

9.0.30729.162

570,696

14-Oct-2008

02:32

x86

Msvcp90d.dll

9.0.30729.162

2,514,760

14-Oct-2008

00:56

IA-64

Msvcp90d.dll

9.0.30729.162

1,121,608

14-Oct-2008

01:12

x64

Msvcp90d.dll

9.0.30729.162

873,288

14-Oct-2008

02:32

x86

Msvcr90.dll

9.0.30729.162

1,504,584

14-Oct-2008

00:56

IA-64

Msvcr90.dll

9.0.30729.162

624,456

14-Oct-2008

01:12

x64

Msvcr90.dll

9.0.30729.162

653,640

14-Oct-2008

02:32

x86

Msvcr90d.dll

9.0.30729.162

3,599,688

14-Oct-2008

00:56

IA-64

Msvcr90d.dll

9.0.30729.162

1,349,960

14-Oct-2008

01:12

x64

Msvcr90d.dll

9.0.30729.162

1,178,440

14-Oct-2008

02:32

x86

Vcomp90.dll

9.0.30729.162

142,664

14-Oct-2008

00:56

IA-64

Vcomp90.dll

9.0.30729.162

57,672

14-Oct-2008

01:12

x64

Vcomp90.dll

9.0.30729.162

52,040

14-Oct-2008

02:32

x86

Vcomp90d.dll

9.0.30729.162

317,256

14-Oct-2008

00:56

IA-64

Vcomp90d.dll

9.0.30729.162

105,800

14-Oct-2008

01:12

x64

Vcomp90d.dll

9.0.30729.162

89,416

14-Oct-2008

02:32

x86

Vcomp90ui.dll

9.0.30729.162

11,592

20-Oct-2008

17:19

x86

Vcredist_ia64.exe

9.0.30729.162

4,712,272

14-Oct-2008

19:32

x86

Vcredist_x64.exe

9.0.30729.162

5,236,560

14-Oct-2008

19:36

x86

Vcredist_x86.exe

9.0.30729.162

4,496,208

14-Oct-2008

19:28

x86

Solution de contournement

Pour contourner ce problème, appliquez l’une des méthodes suivantes :

  • Modifier les quatre conditions qui sont décrites dans la section « Symptômes ».

  • Remplacez la fonction strncpy avec d’autres fonctions qui ont des fonctionnalités similaires, telles que la fonction memcpyou lstrcpyn .

    Remarque Ces fonctions de copie sont légèrement différentes. Par exemple, la fonction memcpy ne termine pas la copie de la chaîne lorsqu’un octet null est rencontré avant la longueur indiquée.

État

Microsoft a confirmé l'existence de ce problème dans les produits Microsoft répertoriés dans la section « S'applique à ».

Plus d'informations

Pour plus d'informations sur la terminologie de mise à jour logicielle, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :

Description 824684 terminologie standard utilisée pour décrire les mises à jour logicielles de Microsoft

Besoin d’aide ?

Développez vos compétences
Découvrez des formations
Accédez aux nouvelles fonctionnalités en avant-première
Rejoindre Microsoft Insider

Ces informations vous ont-elles été utiles ?

Dans quelle mesure êtes-vous satisfait(e) de la qualité de la traduction ?
Qu’est-ce qui a affecté votre expérience ?

Nous vous remercions pour vos commentaires.

×