Forum OpenACS Q&A: Re: nsd crash after "ns_returnredirect"

Collapse
Posted by Alex Andryushkin on
Ok, looks like that no one has a quick answer so I had to make time and play with the gdb and source code a little. Here is my findings:

file nsd/adpeval.c, function NsAdpLogError(NsInterp *itPtr), around line 824

At some point, framePtr which is
framePtr = itPtr->adp.framePtr;
turns out to be zero, which obviously causes SIGSEGV in the code couple lines later

Ns_DStringPrintf(&ds, "\n at line %d of ",
framePtr->line + interp->errorLine);

Why framePtr is zero - I have no idea, would be great to hear from nsd developers.

However, this quickie fixes the *crash* part

if (!framePtr) {
Ns_Log(Fatal, "AAA - zero framePtr");
return;
}

Please comment

~ Alex.

PS this is 4.5.0, not 4.0.10