bug-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Bug hurd/24110] SS_DISABLE never set in stack_t value returned by s


From: Samuel Thibault
Subject: Re: [Bug hurd/24110] SS_DISABLE never set in stack_t value returned by sigaltstack
Date: Mon, 28 Jan 2019 21:28:07 +0100
User-agent: NeoMutt/20170113 (1.7.2)

Svante Signell, le lun. 28 janv. 2019 20:22:42 +0100, a ecrit:
> $24 = {ss_sp = 0x9501c, ss_size = 45028, ss_flags = 1}

Actually these values look odd. You could check with a breakpoint
whether sigaltstack() is really used to set these values.

If that's not what sets it, there's possibly an overwrite from somewhere
else. What you could then do is:

gdb> b sigaltstack.c:55
gdb> c

to get after sigaltstack() has made its duty (after __spin_unlock), and
at that breakpoint, check *argss for the values that were supposed to be
put into s->sigaltstack.ss_sp, and put a hardware watchpoint:

gdb> p &s->sigaltstack.ss_sp
$1 = (void **) 0x1030cd0
gdb> watch * (void **) 0x1030cd0

watching the address instead of the expression is important for the
watch to be hardware-assisted.

That way you'll get to see what modifies the ss_sp field.

Samuel



reply via email to

[Prev in Thread] Current Thread [Next in Thread]