This error is generated when JMPENV fails (trying to do a long jump but found invalid jmpenv structure), which suggests a buffer overrun problem has been detected. Searching through the source codes of Perl yields the following:
/* A jmpenv packages the state required to perform a proper non-local
+jump.
* Note that there is a start_env initialized when perl starts, and to
+p_env
* points to this initially, so top_env should always be non-null.
*
* Existence of a non-null top_env->je_prev implies it is valid to cal
+l
* longjmp() at that runlevel (we make sure start_env.je_prev is alway
+s
* null to ensure this).
*
* je_mustcatch, when set at any runlevel to TRUE, means eval ops must
* establish a local jmpenv to handle exception traps. Care must be t
+aken
* to restore the previous value of je_mustcatch before exiting the
* stack frame iff JMPENV_PUSH was not called in that stack frame.
* GSAR 97-03-27
*/
|