Blame SOURCES/gdb-rhbz1493675-gcore-sigkilled-process.patch

dc7ef9
https://bugzilla.redhat.com/show_bug.cgi?id=1493675
dc7ef9
dc7ef9
diff -dup -rup gdb-7.6.1-orig/gdb/gcore.c gdb-7.6.1/gdb/gcore.c
dc7ef9
--- gdb-7.6.1-orig/gdb/gcore.c	2017-10-20 22:28:50.990391003 +0200
dc7ef9
+++ gdb-7.6.1/gdb/gcore.c	2017-10-20 22:29:26.797710799 +0200
dc7ef9
@@ -111,8 +111,8 @@ do_bfd_delete_cleanup (void *arg)
dc7ef9
   bfd *obfd = arg;
dc7ef9
   const char *filename = obfd->filename;
dc7ef9
 
dc7ef9
-  gdb_bfd_unref (arg);
dc7ef9
   unlink (filename);
dc7ef9
+  gdb_bfd_unref (arg);
dc7ef9
 }
dc7ef9
 
dc7ef9
 /* gcore_command -- implements the 'gcore' command.
dc7ef9
--- ./gdb/inf-ptrace.c	2017-09-28 20:14:05.802344770 +0200
dc7ef9
+++ ./gdb/inf-ptrace.c	2017-09-28 22:04:30.417779859 +0200
dc7ef9
@@ -280,6 +280,7 @@ inf_ptrace_detach (struct target_ops *op
dc7ef9
 {
dc7ef9
   pid_t pid = ptid_get_pid (inferior_ptid);
dc7ef9
   int sig = 0;
dc7ef9
+  int saved_errno;
dc7ef9
 
dc7ef9
   if (from_tty)
dc7ef9
     {
dc7ef9
@@ -300,8 +301,7 @@ inf_ptrace_detach (struct target_ops *op
dc7ef9
      started the process ourselves.  */
dc7ef9
   errno = 0;
dc7ef9
   ptrace (PT_DETACH, pid, (PTRACE_TYPE_ARG3)1, sig);
dc7ef9
-  if (errno != 0)
dc7ef9
-    perror_with_name (("ptrace"));
dc7ef9
+saved_errno = errno;
dc7ef9
 #else
dc7ef9
   error (_("This system does not support detaching from a process"));
dc7ef9
 #endif
dc7ef9
@@ -311,6 +311,11 @@ inf_ptrace_detach (struct target_ops *op
dc7ef9
 
dc7ef9
   if (!have_inferiors ())
dc7ef9
     unpush_target (ops);
dc7ef9
+
dc7ef9
+if (saved_errno != 0) {
dc7ef9
+  errno = saved_errno;
dc7ef9
+  perror_with_name (("ptrace"));
dc7ef9
+}
dc7ef9
 }
dc7ef9
 
dc7ef9
 /* Kill the inferior.  */