From 0ca198f1f90071a054287c204a3fd1b4ea315e18 Mon Sep 17 00:00:00 2001
From: Samuel Thibault <samuel.thibault@ens-lyon.org>
Date: Mon, 11 Dec 2017 02:32:26 +0100
Subject: Record executable entry for PIE core dumps

* hurd/process.defs (proc_set_entry, proc_get_entry): New RPCs.
* hurd/process_reply.defs: Add skips for proc_set_entry, proc_get_entry.
* hurd/process_request.defs: Likewise.
* exec/exec.c (do_exec): Call proc_set_entry.
* proc/proc.h (proc): Add p_entry field.
* proc/mgt.c (S_proc_set_entry, S_proc_get_entry): New RPC
implementations.
* exec/elfcore.c (dump_core): Add at_entry note, call proc_get_entry to
get it, and write it with WRITE_NOTE.
---
 exec/exec.c | 5 +++++
 1 file changed, 5 insertions(+)

(limited to 'exec/exec.c')

diff --git a/exec/exec.c b/exec/exec.c
index d78c54c5..2d74ee1c 100644
--- a/exec/exec.c
+++ b/exec/exec.c
@@ -1234,6 +1234,11 @@ do_exec (file_t file,
 	goto out;
 
       set_name (newtask, argv, pid);
+
+      e.error = proc_set_entry (boot->portarray[INIT_PORT_PROC],
+			        e.entry);
+      if (e.error)
+	goto out;
     }
   else
     set_name (newtask, argv, 0);
-- 
cgit v1.2.3