gdb/
authorPedro Alves <palves@redhat.com>
Fri, 24 Sep 2010 13:41:43 +0000 (13:41 +0000)
committerPedro Alves <palves@redhat.com>
Fri, 24 Sep 2010 13:41:43 +0000 (13:41 +0000)
* amd64-linux-nat.c (compat_siginfo_from_siginfo)
(siginfo_from_compat_siginfo): Also copy si_pid and si_uid when
si_code is < 0.  Check for si_code == SI_TIMER before checking for
si_code < 0.

gdb/gdbserver/
* linux-x86-low.c (compat_siginfo_from_siginfo)
(siginfo_from_compat_siginfo): Also copy si_pid and si_uid when
si_code is < 0.  Check for si_code == SI_TIMER before checking for
si_code < 0.

gdb/ChangeLog
gdb/amd64-linux-nat.c
gdb/gdbserver/ChangeLog
gdb/gdbserver/linux-x86-low.c

index e335b68c2afb61dbf753b23f00d0cfb45d261765..b77035623866016e03d9ee5f57e0af2e5554ad3d 100644 (file)
@@ -1,3 +1,10 @@
+2010-09-24  Pedro Alves  <pedro@codesourcery.com>
+
+       * amd64-linux-nat.c (compat_siginfo_from_siginfo)
+       (siginfo_from_compat_siginfo): Also copy si_pid and si_uid when
+       si_code is < 0.  Check for si_code == SI_TIMER before checking for
+       si_code < 0.
+
 2010-09-24  Pedro Alves  <pedro@codesourcery.com>
 
        * objfiles.h (ALL_OBJSECTIONS): Handle breaks in the inner loop.
index c0edc106ced248d2691bcc782fd5a1ff3f774a9f..16e97a2d04e2236bef3992f94b00caf3cbdb29fc 100644 (file)
@@ -574,8 +574,10 @@ compat_siginfo_from_siginfo (compat_siginfo_t *to, siginfo_t *from)
   to->si_errno = from->si_errno;
   to->si_code = from->si_code;
 
-  if (to->si_code < 0)
+  if (to->si_code == SI_TIMER)
     {
+      to->cpt_si_timerid = from->si_timerid;
+      to->cpt_si_overrun = from->si_overrun;
       to->cpt_si_ptr = (intptr_t) from->si_ptr;
     }
   else if (to->si_code == SI_USER)
@@ -583,10 +585,10 @@ compat_siginfo_from_siginfo (compat_siginfo_t *to, siginfo_t *from)
       to->cpt_si_pid = from->si_pid;
       to->cpt_si_uid = from->si_uid;
     }
-  else if (to->si_code == SI_TIMER)
+  else if (to->si_code < 0)
     {
-      to->cpt_si_timerid = from->si_timerid;
-      to->cpt_si_overrun = from->si_overrun;
+      to->cpt_si_pid = from->si_pid;
+      to->cpt_si_uid = from->si_uid;
       to->cpt_si_ptr = (intptr_t) from->si_ptr;
     }
   else
@@ -628,8 +630,10 @@ siginfo_from_compat_siginfo (siginfo_t *to, compat_siginfo_t *from)
   to->si_errno = from->si_errno;
   to->si_code = from->si_code;
 
-  if (to->si_code < 0)
+  if (to->si_code == SI_TIMER)
     {
+      to->si_timerid = from->cpt_si_timerid;
+      to->si_overrun = from->cpt_si_overrun;
       to->si_ptr = (void *) (intptr_t) from->cpt_si_ptr;
     }
   else if (to->si_code == SI_USER)
@@ -637,10 +641,10 @@ siginfo_from_compat_siginfo (siginfo_t *to, compat_siginfo_t *from)
       to->si_pid = from->cpt_si_pid;
       to->si_uid = from->cpt_si_uid;
     }
-  else if (to->si_code == SI_TIMER)
+  if (to->si_code < 0)
     {
-      to->si_timerid = from->cpt_si_timerid;
-      to->si_overrun = from->cpt_si_overrun;
+      to->si_pid = from->cpt_si_pid;
+      to->si_uid = from->cpt_si_uid;
       to->si_ptr = (void *) (intptr_t) from->cpt_si_ptr;
     }
   else
index d769dd3c23f6f79709f6c31c37f223d07c73e3fb..250729ca8d8f1e5c85677d3e7285480df6d39aa1 100644 (file)
@@ -1,3 +1,10 @@
+2010-09-24  Pedro Alves  <pedro@codesourcery.com>
+
+       * linux-x86-low.c (compat_siginfo_from_siginfo)
+       (siginfo_from_compat_siginfo): Also copy si_pid and si_uid when
+       si_code is < 0.  Check for si_code == SI_TIMER before checking for
+       si_code < 0.
+
 2010-09-13  Joel Brobecker  <brobecker@adacore.com>
 
        * lynx-i386-low.c: New file.
index 8ddb5530e9d2a8ffe531b7091b38e2d5ee3a464f..49e9e5551b5327658213c43a500e30bb4c140717 100644 (file)
@@ -792,8 +792,10 @@ compat_siginfo_from_siginfo (compat_siginfo_t *to, siginfo_t *from)
   to->si_errno = from->si_errno;
   to->si_code = from->si_code;
 
-  if (to->si_code < 0)
+  if (to->si_code == SI_TIMER)
     {
+      to->cpt_si_timerid = from->si_timerid;
+      to->cpt_si_overrun = from->si_overrun;
       to->cpt_si_ptr = (intptr_t) from->si_ptr;
     }
   else if (to->si_code == SI_USER)
@@ -801,10 +803,10 @@ compat_siginfo_from_siginfo (compat_siginfo_t *to, siginfo_t *from)
       to->cpt_si_pid = from->si_pid;
       to->cpt_si_uid = from->si_uid;
     }
-  else if (to->si_code == SI_TIMER)
+  else if (to->si_code < 0)
     {
-      to->cpt_si_timerid = from->si_timerid;
-      to->cpt_si_overrun = from->si_overrun;
+      to->cpt_si_pid = from->si_pid;
+      to->cpt_si_uid = from->si_uid;
       to->cpt_si_ptr = (intptr_t) from->si_ptr;
     }
   else
@@ -846,8 +848,10 @@ siginfo_from_compat_siginfo (siginfo_t *to, compat_siginfo_t *from)
   to->si_errno = from->si_errno;
   to->si_code = from->si_code;
 
-  if (to->si_code < 0)
+  if (to->si_code == SI_TIMER)
     {
+      to->si_timerid = from->cpt_si_timerid;
+      to->si_overrun = from->cpt_si_overrun;
       to->si_ptr = (void *) (intptr_t) from->cpt_si_ptr;
     }
   else if (to->si_code == SI_USER)
@@ -855,10 +859,10 @@ siginfo_from_compat_siginfo (siginfo_t *to, compat_siginfo_t *from)
       to->si_pid = from->cpt_si_pid;
       to->si_uid = from->cpt_si_uid;
     }
-  else if (to->si_code == SI_TIMER)
+  else if (to->si_code < 0)
     {
-      to->si_timerid = from->cpt_si_timerid;
-      to->si_overrun = from->cpt_si_overrun;
+      to->si_pid = from->cpt_si_pid;
+      to->si_uid = from->cpt_si_uid;
       to->si_ptr = (void *) (intptr_t) from->cpt_si_ptr;
     }
   else