[pso] probleme liste windows
Mihai Florian
my_mihai_florian at yahoo.com
Mon Apr 2 20:04:05 EEST 2007
Problema este ca atunci cand faci pop nu trebuie sa avansezi cu j-ul
(poti sa te uiti la PopEntryList
http://cs.pub.ro/~pso/lxr/source/public/sdk/inc/ntrtl.h?v=wrk-1.2#447
ca sa vezi exact ce se intampla acolo) si in plus i-ul nu mai are nici
o semnificatie pentru ca tocmai l-ai scos din lista (accesezi memorie
pe care ai eliberat-o deja), deci in nici un caz nu poti face j = i; si
i = i->Next;
Un cod care ar trebui sa mearga:
for ( j = &SciMonList, i = SciMonList.Next; i; )
{
mple = CONTAINING_RECORD( i, struct MonProcList, lh);
if ( mple->syscall == syscall)
{
DbgPrint( "SCI: SciDelMonitor: 0 deleting syscall %d pid
%d\n",
mple->syscall, mple->pid);
ExInterlockedPopEntryList( j, &SciMonListLock);
ExFreePoolWithTag( mple, 'mple');
i = j->Next;
}
else
{
j = i;
i = i->Next;
}
}
____________________________________________________________________________________
Sucker-punch spam with award-winning protection.
Try the free Yahoo! Mail Beta.
http://advision.webevents.yahoo.com/mailbeta/features_spam.html
More information about the pso
mailing list