https://bugs.kde.org/show_bug.cgi?id=433778

Paul Floyd <[email protected]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|FIXED                       |---
                 CC|                            |[email protected]
     Ever confirmed|0                           |1
             Status|RESOLVED                    |REOPENED

--- Comment #2 from Paul Floyd <[email protected]> ---
No, there really is a problem, which I've now identified.

On FreeBSD swapcontext is a syscall. This can alter the registers and the
signal mask. This means that the assert that the signal flags are the same at
the end of VG_(client_syscall) as follows



   /* Make sure the tmp signal mask matches the real signal mask;
      sigsuspend may change this. */
   vg_assert(VG_(iseqsigset)(&tst->sig_mask, &tst->tmp_sig_mask));


needs to be changed to something like

   vg_assert(VG_(isswapcontext)(sysno) || VG_(iseqsigset)(&tst->sig_mask,
&tst->tmp_sig_mask));

where the 'isswapcontext' function 
a) always returns false on platforms where swapcontext is not a syscall
b) returns true on FreeBSD if sysno is NR__swapcontext

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to