[PATCH 2/4] ldv/unwind: handle invalid pid

Dmitry V. Levin ldv at altlinux.org
Thu Apr 10 23:20:44 UTC 2014


On Thu, Apr 10, 2014 at 01:52:09AM +0900, Masatake YAMATO wrote:
> In unwind part of tcb finalization, tcp->s_ent
> was accessed to decide whether pending stacktrace in tcp->queue
> should be printed or not.
> 
> However, s_ent can be NULL if invalid pid is given to strace
> as an trace target. Here invalid pid means that the pid is
> not associated with any process.

tcp->s_ent can be NULL iff either trace_syscall_entering hasn't been
called for this tcp yet, or the process disappeared before the first
trace_syscall_entering call for this tcp.

Another approach to fix this bug is to move unwind_tcb_init call from
alloctcb to the point where its result is going to be used for the first
time (unwind_stacktrace_capture and unwind_stacktrace_print).


-- 
ldv
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: not available
URL: <http://lists.strace.io/pipermail/strace-devel/attachments/20140411/faec909d/attachment.bin>


More information about the Strace-devel mailing list