On Fri, 17 Nov 2000, Francois romieu wrote:

> CPU A: assume de->count = 1 (in de_put)
> fs/proc/inode.c::44 if (!--de->count) {
> de->count = 0
> 
> CPU B: (in remove_proc_entry)
> fs/proc/generic.c::577         if (!de->count)
> fs/proc/generic.c::578             free_proc_entry(de);
> 
> CPU A: (in de_put)
> fs/proc/inode.c::45 if (de->deleted) { <-- dereferencing kfreed pointer
> 
> What does protect us from the preceding if lock_kernel is thrown ?
 
Ok, anyway, notice that in line 41 we return from de_put() without 
unlock_kernel()'ing the kernel. It doesn't look good.

-- 
Dan Aloni 
[EMAIL PROTECTED]

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/

Reply via email to