Q169489: Snabase.exe AV After You Save Configuration Changes
Article: Q169489
Product(s): Microsoft SNA Server
Version(s): WINDOWS:3.0,3.0 SP1
Operating System(s):
Keyword(s): kbnetwork
Last Modified: 13-JUN-2001
-------------------------------------------------------------------------------
The information in this article applies to:
- Microsoft SNA Server, versions 3.0, 3.0 SP1
-------------------------------------------------------------------------------
SYMPTOMS
========
After you save changes to the configuration file using SNA Server Manager, the
following access violation may occur in Snabase.exe:
NTSD: access violation
eax=0ee0a008 ebx=0b775dc8 ecx=0bd8fca0 edx=ffffffff esi=0ee0a008
edi=00dc0004
eip=6120e003 esp=0bd8fbf0 ebp=0bd8fcb0 iopl=0 nv up ei pl nz na
pe nc
cs=001b ss=0023 ds=0023 es=0023 fs=0038 gs=0000
efl=00010202
snacfg!_GetDS+0x13:
6120e003 813e00feca00 cmp dword ptr [esi],0xcafe00
ds:0023:0ee0a008=????????
0:018> kb
ChildEBP RetAddr Args to Child
0bd8fbf4 612057fd 00dc0004 0bd8ff15 77f46c78 snacfg!_GetDS+0x13
0bd8fc04 01004406 00dc0004 00000001 00000000
snacfg!_SnaEnumerateRecords+0x1d
0bd8fc28 0100e27d 010231e4 010231ec 010231e8
snabase!_GetBroadcastEntries+0x36
CAUSE
=====
The SnaBase GetBroadcastEntries() function calls the configuration DLL without
calling ReadLockConfig() first. If a local RPC request arrives simultaneously,
the RPC request refreshes the config file if it is out of date. This invalidates
the pointer to the configuration file. If the GetBroadcastEntries() has already
pushed the old configuration file pointer to the stack, GetDS() may try to
access the old (now invalid) file pointer.
STATUS
======
Microsoft has confirmed this to be a problem in SNA Server versions 3.0 and 3.0
Service Pack 1. This problem was corrected in the latest SNA Server version 3.0
U.S. Service Pack. For information on obtaining this Service Pack, query on the
following word in the Microsoft Knowledge Base (without the spaces):
S E R V P A C K
MORE INFORMATION
================
With the fix applied, GetBroadcastEntries calls ReadLockConfig before attempting
to access configuration information, to ensure that the configuration file
pointer is not invalidated.
Additional query words:
======================================================================
Keywords : kbnetwork
Technology : kbAudDeveloper kbSNAServSearch kbSNAServ300 kbSNAServ300SP1
Version : WINDOWS:3.0,3.0 SP1
Issue type : kbbug
Solution Type : kbfix
=============================================================================
THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.
Copyright Microsoft Corporation 1986-2002.