Hi Alexey,
Since you are still working on these LdrXXX functions then you maybe find possibility to add there some code to prevent them trapping into infinite cycle (bug 5881: http://www.reactos.org/bugzilla/show_bug.cgi?id=5881 )
While booted up with RAM 25 or 24 MB ROS kernel falls into infinite cycle there, but being booted up with 15 Mbs ROS stalls and and hangs up.
To test it is enough to run it on any VM with 24Mb of RAM.
What occurs there is infinite recursive calls, in form of LdrpLoadModule ->calls LdrFixupImports -> LdrpGetOrLoadModule -> LdrpLoadModule and so forth. (detailed bt is in bug 5881 description). Maybe ROS kernel doesn't check memory availability, something like XXXMalloc returning NULL or so.
Thanks! -M.A.
On Wed, Mar 23, 2011 at 4:25 PM, fireball@svn.reactos.org wrote:
Author: fireball Date: Wed Mar 23 12:25:53 2011 New Revision: 51123
URL: http://svn.reactos.org/svn/reactos?rev=51123&view=rev Log: [NTDLL/LDR]
- Fix a few bugs (wrong variable usage, wrong variable initialization) which led to incorrect snapping of import address table.
- Wrap LdrpSnapThunk() invocations into SEH.
Modified: trunk/reactos/dll/ntdll/ldr/ldrpe.c
Modified: trunk/reactos/dll/ntdll/ldr/ldrpe.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/ntdll/ldr/ldrpe.c?rev=5...