In article <CA+SXE9v9C=SfjQxZRCXLBSpKg=2sn-jsjh2hw0t4t9q_mmr...@mail.gmail.com>,
Charles Cui  <charles.cui1...@gmail.com> wrote:
>-=-=-=-=-=-
>
>Hi Christos,
>
>   I spend time in studying the current code base, and checkout to previous
>commit to see where I introduced the problems (just like a binary search).
>In this way, I hope to narrow down to the real problem.
>One thing that I found was my sshd is still working even applying all those
>patches.
>I can login into the vm via ssh, and run tests.
>By the way, how do you fix the problems which makes your sshd broken?

1. In siggetinfo(), if we exit the loop without finding a signal, count == 0
   and we return right there without initializing "out". This is what breaks
   things for me.
2. In sigget we only remove from the set if ret == 1 (but this is not a bug
   really); I think it is better to do (more similar to the old code):

        sigdelset(&sp->sp_set, signo);
out:
        count = siggetinfo(sp, out, signo);
        if (count > 1)
                sigaddset(&sp->sp_set, signo);

christos

Reply via email to