[Gtkradiant] [Bug 543] New: A missing client config in synapse.config = crash

gtkradiant@zerowing.idsoftware.com gtkradiant@zerowing.idsoftware.com
Mon, 27 May 2002 13:40:30 -0500


http://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=543

           Summary: A missing client config in synapse.config = crash
           Product: GtkRadiant
           Version: 1.3
        OS/Version: All
            Status: NEW
          Severity: normal
          Priority: P2
         Component: editor
        AssignedTo: ttimo@idsoftware.com
        ReportedBy: hydra@hydras-world.com


If you drop a .dll in modules/ that requires a client config an access 
violation occurs on line 666 (!) of synapse.cpp in 
CSynapseServer::SelectClientConfig() if that config can't be found.

e.g.  I dropped in spritemodel.dll (MODEL_MAJOR, "sprite" minor) and hadn't 
updated my synapse.config (for quake3).  The when you add the client config to 
synapse.config it all works correctly.

the missing part of synapse.config is as follows:

  <client name="sprite">
    <api name="shaders">
      quake3
    </api>
    <api name="VFS">
      pk3
    </api>
  </client>

The crash occurs because pNode in this line is null

  // focus
  mpFocusedNode = pNode->children;  <-- CRASH!

if I add this before it:

  if (!pNode)
    return false; // Hydra: fixes crash if client config cannot be found.

the crash moves to CSynapseServer::PushRequired(), line 417:

      int j,jmax = pScanClient->GetAPICount();

pScanClient is NULL.

Over to you ttimo.



------- You are receiving this mail because: -------
Whoops!  I have no idea!