On Wed, Mar 15, 2023 at 03:57:40PM -0400, Andrew Piskorski wrote:
> On Tue, Mar 14, 2023 at 04:44:21PM -0400, Andrew Piskorski wrote:
> 
> >   Debug Error!
> >   Program:  C:\web\ns-fork-pub\naviserver\nsd\libnsd.dll
> >   Run-Time Check Failure #2 - Stack around the variable 'filter' was 
> > corrupted.

> On Windows, running the "ns_config.test" tests triggers that one.  All
> the tests through ns_config-7.4.0, pass, then it stops with no further
> output.  Yep, the next test, ns_config-7.4.1, is sufficient to trigger
> the problem all by itself.

I put the same code that the ns_config-7.4.1 test runs into a simple
*.tcl page like this:

  set xx [ns_set array [ns_configsection -filter "unread" ns/testconfig]]
  ns_return 200 {text/plain} "Result:  $xx"

Hitting that web page, I the ns_return never runs, because nsd.exe has
broken before getting that far.

WinDbg says the stack corruption is happening in NsTclConfigSectionObjCmd()
(in "nsd/tclconf.c"), but it doesn't notice until it gets to the end
of that function.  I think most of the work there is in Ns_ParseObjv(),
so maybe that, or something it calls, is the most likely place for
some sort of array bounds overrun to be hiding.  I don't know though,
it could be anything that NsTclConfigSectionObjCmd() calls.

I don't know how else to further track down this bug, but if anybody
has further suggestions I'm willing to try them.

-- 
Andrew Piskorski <a...@piskorski.com>


_______________________________________________
naviserver-devel mailing list
naviserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/naviserver-devel

Reply via email to