CORRECTIF : xp_enumgroups génère une violation d'accès lorsqu'un paramètre de grande taille lui est passé

Traductions disponibles Traductions disponibles
Numéro d'article: 294338 - Voir les produits auxquels s'applique cet article
Ancien nº de publication de cet article : F294338
N° DE BOGUE : 351927 (SHILOH_BUGS)
Agrandir tout | Réduire tout

Symptômes

xp_enumgroups fournit une liste des groupes Microsoft Windows NT locaux ou une liste des groupes globaux définis dans un domaine Windows NT spécifique indiqué par le paramètre.

Si un paramètre de grande taille est passé à la procédure stockée xp_enumgroups, une violation d'accès est générée et la connexion est interrompue avec les messages d'erreur suivants :
ODBC : Msg 0, Niveau 19, État 1
SqlDumpExceptionHandler : Le processus 53 a généré une exception irrécupérable c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server achève ce processus.

ODBC : Msg 0, Niveau 20, État 1
La fonction stockée 'xp_enumgroups' dans la bibliothèque 'xplog70.dll' a généré une violation d'accès. SQL Server arrête le processus 53.

Connexion interrompue
Si la chaîne passée en tant que paramètre est de très grande taille, la violation d'accès arrête le service SQL Server. Le message d'erreur généré ressemble à celui-ci :
[Microsoft][Pilote ODBC SQL Server][DBMSLPCN]ConnectionCheckForData (CheckforData()).
Serveur : Msg 11, Niveau 16, État 1, Ligne 0
Erreur réseau générale. Consultez votre documentation réseau.

Résolution

Pour résoudre ce problème, procurez-vous le dernier Service Pack pour SQL Server 2000. Pour plus d'informations, consultez l'article suivant dans la Base de connaissances Microsoft :
290211 INF : Procédure d'obtention du dernier Service Pack pour SQL Server 2000

Statut

Microsoft a confirmé l'existence de ce problème dans SQL Server 2000. Ce problème a été corrigé dans le Service Pack 1 de SQL Server 2000.

Plus d'informations

Ce problème ne se produit que si la taille de la chaîne appelée par xp_enumgroups est supérieure à 228 octets. Le texte précis du message d'erreur peut varier en fonction de la taille de la chaîne passée.

Par exemple, si la chaîne est de 229 octets, le message d'erreur suivant s'affiche :
Serveur : Msg 3624, Niveau 20, État 1, Procédure xp_enumgroups, Ligne 1

Emplacement : dbccdll.cpp:516
Expression : pElem == Lookup (pElem->m_DLLName.m_str)
SPID : 51
ID du processus : 768

Connexion interrompue
Procédure pour reproduire le comportement

Vous pouvez procéder comme suit pour reproduire le problème :

  • Pour provoquer une violation d'accès, utilisez le code suivant :
    xp_enumgroups 'Analyse du répertoire [C:\*]
    Analyse du répertoire [C:\*]
    Analyse du répertoire [C:\APSETUP\*]
    Analyse du répertoire [C:\APSETUP\*]
    Analyse du répertoire [C:\APSETUP\*]
    Analyse du répertoire [C:\*]
    Analyse du répertoire [C:\cmdcons\*]
    Analyse du répertoire [C:\*]'
  • Pour provoquer une violation d'accès, ainsi que l'arrêt du service SQL Server, utilisez le code suivant :
    xp_enumgroups 'Analyse du répertoire [C:\*]
    Analyse du répertoire [C:\*]
    Analyse du répertoire [C:\APSETUP\*]
    Analyse du répertoire [C:\APSETUP\*]
    Analyse du répertoire [C:\APSETUP\*]
    Analyse du répertoire [C:\*]
    Analyse du répertoire [C:\cmdcons\*]
    Analyse du répertoire [C:\*]
    Analyse du répertoire [C:\*]
    Analyse du répertoire [C:\APSETUP\*]
    Analyse du répertoire [C:\APSETUP\*]
    Analyse du répertoire [C:\APSETUP\*]
    Analyse du répertoire [C:\APSETUP\*]
    Analyse du répertoire [C:\APSETUP\*]
    Analyse du répertoire [C:\APSETUP\*]
    Analyse du répertoire [C:\APSETUP\*]
    Analyse du répertoire [C:\APSETUP\*]
    Analyse du répertoire [C:\APSETUP\*]
    Analyse du répertoire [C:\*]
    Analyse du répertoire [C:\cmdcons\*]
    Analyse du répertoire [C:\*]'

Propriétés

Numéro d'article: 294338 - Dernière mise à jour: jeudi 6 novembre 2003 - Version: 3.1
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft SQL Server 2000 Standard
Mots-clés : 
kbbug kbfix kbsqlserv2000bug kbsqlserv2000sp1fix KB294338
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com