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