Work at SourceForge, help us to make it a better place! We have an immediate need for a Support Technician in our San Francisco or Denver office.

Close

#255 Batch file that calls itself locks up DosBox hard

SVN
open
nobody
shell (25)
5
2013-11-21
2006-02-18
Justin Kerk
No

If a batch file calls itself (causing an infinite
loop), DosBox immediately freezes and will not repaint
the GUI or respond to the window controls. Moreover,
the overall system freezes to a crawl until DosBox
eventually crashes (maybe it runs out of stack space?).

By contrast, running the same batch file in a Windows
cmd prompt results in a scrolling display of the batch
file name (because echo is on) which does not freeze
the UI or hog the system, and which can be aborted with
Ctrl-C.

To demonstrate the problem, create a file evil.bat with
the following contents:

evil

And then mount it in DosBox and type "evil". Although
this is a contrived example, the reason I discovered
this was trying to run King's Quest 1, which includes a
kq1.bat that issues the following commands:

cd \sierra\kq1
kq1 %1 %2 %3 %4 %5

In DosBox, the game is not in c:\sierra\kq1 so the cd
fails and the kq1 line ends up calling kq1.bat again
and not kq1\kq1.com as intended, so this bug is triggered.

This happens with both the 0.63 release and the 0.65rc1
release candidate. Tested with Windows XP.

Discussion