Do not overwite the core signal if it has already been set by another thread.
authorNick Clifton <nickc@redhat.com>
Thu, 29 Nov 2001 10:34:01 +0000 (10:34 +0000)
committerNick Clifton <nickc@redhat.com>
Thu, 29 Nov 2001 10:34:01 +0000 (10:34 +0000)
bfd/ChangeLog
bfd/elf.c

index b126fd7ff7d20676a5ac9e1e670510a3e64b6de6..599f5f0b7aff48edf7872419194aa262c343ae15 100644 (file)
@@ -1,3 +1,8 @@
+2001-11-29  "Peter.Schauer" <Peter.Schauer@regent.e-technik.tu-muenchen.de>
+
+       * elf.c (elfcore_grok_prstatus): Do not overwite the core signal
+       if it has already been set by another thread.
+
 2001-11-28  Jakub Jelinek  <jakub@redhat.com>
 
        * elf64-alpha.c (ALPHA_ELF_GOT_ENTRY_RELOCS_XLATED): Defined.
index 51ae3dbdbf707a5dfcf55495905cf8b236d0d84e..81923d176dd8f655ecc2cf8ab4f6e86c9178741b 100644 (file)
--- a/bfd/elf.c
+++ b/bfd/elf.c
@@ -5753,7 +5753,10 @@ elfcore_grok_prstatus (abfd, note)
       offset   = offsetof (prstatus_t, pr_reg);
       memcpy (&prstat, note->descdata, sizeof (prstat));
 
-      elf_tdata (abfd)->core_signal = prstat.pr_cursig;
+      /* Do not overwrite the core signal if it
+        has already been set by another thread.  */
+      if (elf_tdata (abfd)->core_signal == 0)
+       elf_tdata (abfd)->core_signal = prstat.pr_cursig;
       elf_tdata (abfd)->core_pid = prstat.pr_pid;
 
       /* pr_who exists on:
@@ -5776,7 +5779,10 @@ elfcore_grok_prstatus (abfd, note)
       offset   = offsetof (prstatus32_t, pr_reg);
       memcpy (&prstat, note->descdata, sizeof (prstat));
 
-      elf_tdata (abfd)->core_signal = prstat.pr_cursig;
+      /* Do not overwrite the core signal if it
+        has already been set by another thread.  */
+      if (elf_tdata (abfd)->core_signal == 0)
+       elf_tdata (abfd)->core_signal = prstat.pr_cursig;
       elf_tdata (abfd)->core_pid = prstat.pr_pid;
 
       /* pr_who exists on: