|
People, I met a rather strange situation. I deleted a small memory block and after it was not able to allocate another one. Operator "new" presented me with "out of memory" exception. But without previous call of "delete" "new" gave me what I asked it for (I'm talking about small blocks, something like 10KB). At that very time VirtualAlloc() successfully allocated required memory. How could it be?
|
|
|
|
|
Corrupted heap springs to mind.
|
|
|
|
|
Yeah, of course I thought about it, but was not able to detect where this sorrowful situation took place. Usually when I wrote something outside of allocated memory block, I got a message when "delete" operator was called, but not now. I tried to check surrounding memory, allocated larger then I needed block, wrote canary words before and after memory that I used and found that these canary words remained intact.
|
|
|
|
|
Without seeing the relevant code, I'm afraid we cannot help you.
Veni, vidi, vici.
|
|
|
|
|
Situation is worse, than I expected. Some malicious code is running at my comp. For the beginning, my Visual Studio 2005 refused to create the Project Property window and gave me something like "failed to create Net. Framework property grid". Trying to understand, why my prog refuses to open files, which it was able to open some days ago I found that in my process's address space was downloaded libraries like urlmon.dll, netapi.dll, crypt32.dll and modemInst.dll (!!!). People, I write prog which is intended to work with aerial images and I have no intention to counteract with the Net. The most interesting is the last library- it was taken not from system32 catalog, but from folder where HSPA USB Modem was placed.
|
|
|
|