Re: 2.6.25.3: su gets stuck for root

Joe Peterson
2008-06-04T20:33:22Z

Alan Cox wrote:
>> tty = current->signal->tty = -142080000 or 0xf7880800
>> task->pgrg = -142405824 or 0xf7830f40
>
> task->pgrp is a struct pid - you need the value it holds

Yeah, I figured later that giving you the addresses was rather useless. :)

Anyway, here is more info:

tty_check_change: current->signal->tty = f7880800
tty_check_change: tty = f7880800
tty_check_change: tty->pgrp = f7b99e40
tty->pgrp->count = 5
tty->pgrp->level = 0
tty->pgrp->numbers[0].nr = 6951
tty_check_change: task_pgrp(current) = f7b99d40
task_pgrp(current)->count = 1
task_pgrp(current)->level = 0
task_pgrp(current)->numbers[0].nr = 6952
tty_check_change: kill_pgrp called; returning -ERESTARTSYS
set_termios: error return value (-512) from tty_check_change
foo 6951 0.0 0.1 2332 1096 tty1 S+ 14:18 0:00 su foo
foo 6952 0.0 0.1 2988 1464 tty1 S 14:18 0:00 bash

So, looks like the tty->pgrp's process is the "su" command itself, and
the task_pgrp(current)'s process is "bash" - the shell started by the su.

-Joe