the problem, brought up by Bret:

during config.sys processing,

    INSTALL= \freedos\MEM.EXE /F

will report ~24 K used at 99f0:0

however the kernel will crash if memory below this is overwritten.

source for the bug:

CONFIG.C, DoInstall() sets up a memory arena, and releases memory
below the INIT CODE segment, based on the assumption that 'normal' code
is no longer needed. this is *almost* true.


   STATIC void kernel()
     CommandTail Cmd;

     strcpy(master_env, "PATH=.");
     fmemcpy(MK_FP(DOS_PSP + 8, 0), master_env, sizeof(master_env));

     memset(Cmd.ctBuffer, 0, sizeof(Cmd.ctBuffer));
     strcpy(Cmd.ctBuffer, Config.cfgInitTail);

will use strcpy() and memset(), located at CS:11ee and freed by
DoInstall, and potentially overwritten.

probably the easiest solution: write some quick

   init_memcpy() ...

to be used at *this* location by Kernel().

I'm away for a week; will continue work when back.


What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are 
consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
J-Flow, sFlow and other flows. Make informed decisions using capacity 
planning reports.;132659582;e
Freedos-kernel mailing list

Reply via email to