every tried to exit from an oword subroutine with an M2 and wondered what 
happened?

this is what happens:
- assume interpreter is executing a named oword sub in a separate file
- when the interpreter switches from the main ngc file to the sub, it changes 
the filename to the sub's filename
- the interpreter executes M2 and does NOT return from the sub, leaving the 
open filename the sub's filename
- running the program again now executes the sub ngc file, with potentially 
undesired code execution

To exercise, an Axis config is needed:
- fetch 
http://git.mah.priv.at/gitweb/emc2-dev.git/shortlog/refs/heads/fix-m2-oword 
- pick 515be6
- cd to configs/sim/bug and execute 'emc bug.ini'
- hit the run button twice

For the fix, pick the second commit fb8698e and build; it seems m2 can now 
safely be used to terminate program execution from a sub

This is basically the same horror bug as the one below (fixed in 009b76630), 
just triggered from a differnt corner of the interpreter (note the message 
created by '(debug, should not happen!)' in fail.ngc on the second execution:

http://git.mah.priv.at/gitweb/emc2-dev.git/shortlog/refs/heads/failed-oword-regression-test
http://git.mah.priv.at/gitweb/emc2-dev.git/shortlog/refs/heads/fix-failed-oword-procedure

Howeber, this bug cannot be tested for with a rs274-based regression test 
because the state must be viewed with a debugger or within a complete gui based 
application - rs274 exits before it gets interesting

Actually I suspect bug 1734309 to be related

since this can cause accidential code execution I'll push this one right away 
to master; I'll look into redoing this with v2.5_branch which needs a different 
approach

-----

This bug clearly shows the limits of the component-based testing approach with 
runtests. I think we shoud consider some user-level testing tool which includes 
GUI record/replay. maybe based on http://drdobbs.com/tools/184404691 . 

-Michael
------------------------------------------------------------------------------
All the data continuously generated in your IT infrastructure 
contains a definitive record of customers, application performance, 
security threats, fraudulent activity, and more. Splunk takes this 
data and makes sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-novd2d
_______________________________________________
Emc-developers mailing list
Emc-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-developers

Reply via email to