Hi Christos, Please see my comments below about the real time signal bugs. By the way, do you have any plans to commit this part? I can change the testing program to be a unit test.
2016-08-03 0:10 GMT-07:00 Christos Zoulas <chris...@astron.com>: > 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. > yeah, this is a bug. I looked at the code several times, but never noticed this problem :) > 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); > got it, this looks better. > > christos > >