public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* NULL-ptr deref in mmput via sys_migrate_pages in 3.4-rc4 (proly missing mm==NULL check)
@ 2012-04-23 22:44 Robert Święcki
  2012-04-24 14:23 ` Robert Święcki
  0 siblings, 1 reply; 3+ messages in thread
From: Robert Święcki @ 2012-04-23 22:44 UTC (permalink / raw)
  To: linux-kernel

mm/mempolicy.c
1362         mm = get_task_mm(task);
1363         put_task_struct(task);
1364         if (mm)
1365                 err = do_migrate_pages(mm, old, new,
1366                         capable(CAP_SYS_NICE) ? MPOL_MF_MOVE_ALL
: MPOL_MF_MOVE);
1367         else
1368                 err = -EINVAL;
1369
1370         mmput(mm);

Where mmput doesn't check for mm

kernel/fork.c
567 void mmput(struct mm_struct *mm)
568 {
569         might_sleep();
570
571         if (atomic_dec_and_test(&mm->mm_users)) {


causes NULL-ptr deref

(gdb) target remote /dev/ttyS0
Remote debugging using /dev/ttyS0
mmput (mm=0x0) at kernel/fork.c:571
571		if (atomic_dec_and_test(&mm->mm_users)) {

(gdb) bt
#0  mmput (mm=0x0) at kernel/fork.c:571
#1  0xffffffff8116a1e0 in sys_migrate_pages (pid=<optimized out>,
maxnode=<optimized out>, old_nodes=<optimized out>,
new_nodes=<optimized out>) at mm/mempolicy.c:1370
#2  0xffffffff820726c9 in ?? () at arch/x86/ia32/ia32entry.S:425


(gdb) up
#1  0xffffffff8116a1e0 in sys_migrate_pages (pid=<optimized out>,
maxnode=<optimized out>, old_nodes=<optimized out>,
new_nodes=<optimized out>) at mm/mempolicy.c:1370
1370		mmput(mm);
(gdb) p mm
$1 = (struct mm_struct *) 0x0
(gdb) p task->mm
$2 = (struct mm_struct *) 0x0


-- 
Robert Święcki

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2012-04-25 20:15 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-04-23 22:44 NULL-ptr deref in mmput via sys_migrate_pages in 3.4-rc4 (proly missing mm==NULL check) Robert Święcki
2012-04-24 14:23 ` Robert Święcki
2012-04-25 20:15   ` Dave Jones

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox