[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [MiNT] XaAES regression in launch()



On 18/11/2012 23:33, Helmut Karlowski wrote:
I just looked at the source and found the line

+ if (tailsize && (wiscr == 1 || longtail))

is not there (rev. 1.93). Guess your XaAES is not current.

Indeed, I used the FreeMiNT sources from 25/10/2012.
But there has been no new commit in xa_shel.c until then.

What I have quoted is the rollback-patch which fixes the problem for me:

-            make_argv(tail, tailsize, name, argvtail);

+            if (tailsize && (wiscr == 1 || longtail))
+                make_argv(tail, tailsize, name, argvtail);

I have to reintroduce the "if" to avoid the bug.
It is normal that you don't find it in the current sources.

You can see there when you introduced that change:
http://sparemint.atariforge.net/cgi-bin/cvsweb/freemint/xaaes/src.km/xa_shel.c.diff?r1=1.90&r2=1.91

I don't know why it crashes with that "if", I suspect that there is some side effect such as uninitialized variable, buffer overflow, etc.

Strangely:
- it does not crash on EmuTOS
- it does not crash on FireTOS if I run TeraDesk again from the XaAES menu, after the initial crash

So there is some randomness.

Note that it is the TeraDesk process which crashes, not XaAES.
That's really strange, but reintroducing the "if" line above in XaAES fixes the problem in TeraDesk. This is why I have a big suspicion of memory squashing.

I will have a look at the XaAES log file.

--
Vincent Rivière