The bug seems to be in *mp_do_fileify_dirspec.
else { /* This is a top-level dir. Add the MFD to the path. */
if (buf) retspec = buf;
else if (ts) Newx(retspec,retlen+16,char);
else retspec = __fileify_retbuf;
cp1 = esa;
cp2 = retspec;
while (*cp1 != ':') *(cp2++) = *(cp1++);
With this value of esa, the while statement just runs away, and will
eventually cause *cp2 to write over something unless either *cp1 or *cp2
cause an access violation.
*VMS\mp_do_fileify_dirspec\%LINE 104099\esa: "[0-9][0-9][0-9][0-9"
I have not had time to track down how it got to this state. I will try
to track that down tomorrow.
At this point, the stack is already destroyed, so I will need to restart
the debugging run and trap all calls to mp_do_fileify_dirspec.
I suspected the Newx statement because it could be making an incorrect
assumption about how much space is really needed, but the debugger is
claiming that ts is 0 so it should not have been executed. Of course
with the stack looking a bit corrupted, that could be wrong.
-John
[EMAIL PROTECTED]
Personal Opinion Only