Article ID: 294338 - View products that this article applies to.
This article was previously published under Q294338
This article has been archived. It is offered "as is" and will no longer be updated.
BUG #: 351927 (SHILOH_BUGS)
xp_enumgroups provides a list of local Microsoft Windows NT groups or a list of global groups defined in a specified Windows NT domain, provided by the parameter.
If a large parameter is passed to the xp_enumgroups stored procedure, an Access Violation is generated, and the connection terminates with the error messages that follow:
If the size of the string passed in as a parameter is much larger the access violation stops the SQL Server service. The error message that occurs is similar to:
ODBC: Msg 0, Level 19, State 1
SqlDumpExceptionHandler: Process 53 generated fatal exception c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server is terminating this process.
ODBC: Msg 0, Level 20, State 1
Stored function 'xp_enumgroups' in the library 'xplog70.dll' generated an access violation. SQL Server is terminating process 53.
[Microsoft][ODBC SQL Server Driver][DBMSLPCN]ConnectionCheckForData (CheckforData()).
Server: Msg 11, Level 16, State 1, Line 0
General network error. Check your network documentation.
To resolve this problem, obtain the latest service pack for SQL Server 2000. For additional information, click the following article number to view the article in the Microsoft Knowledge Base:
(https://support.microsoft.com/kb/290211/EN-US/ )INF: How to Obtain the Latest SQL Server 2000 Service Pack
Microsoft has confirmed that this is a problem in SQL Server 2000. This problem was first corrected in SQL Server 2000 Service Pack 1.
This problem only occurs if the size of the string that is called by xp_enumgroups is larger than 228 bytes. The exact text of the error message can vary depending on the size of the string being passed.
For example, if the string is 229 bytes, this error message displays:
Steps to Reproduce Behavior
Server: Msg 3624, Level 20, State 1, Procedure xp_enumgroups, Line 1
Expression: pElem == Lookup (pElem->m_DLLName.m_str)
Process ID: 768
You can use the following to reproduce the problem.