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