All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] Fix AT_EXECFN auxv for no-MMU fdpic
@ 2013-02-26 15:09 Mark Salter
  2013-02-26 15:09 ` [PATCH 2/2] Fix /proc/<pid>/auxv for FDPIC binaries Mark Salter
  0 siblings, 1 reply; 2+ messages in thread
From: Mark Salter @ 2013-02-26 15:09 UTC (permalink / raw)
  To: Alexander Viro; +Cc: linux-fsdevel, linux-kernel, Mark Salter

In the no-MMU case, the FDPIC loader was passing an offset as the value for
the AT_EXECFN auxv. This patch translates that offset into an actual user
address.

Signed-off-by: Mark Salter <msalter@redhat.com>
---
 fs/binfmt_elf_fdpic.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/fs/binfmt_elf_fdpic.c b/fs/binfmt_elf_fdpic.c
index cb240dd..af4c9a4 100644
--- a/fs/binfmt_elf_fdpic.c
+++ b/fs/binfmt_elf_fdpic.c
@@ -496,6 +496,7 @@ static int create_elf_fdpic_tables(struct linux_binprm *bprm,
 	sp = arch_align_stack(bprm->p);
 #else
 	sp = mm->start_stack;
+	bprm->exec = sp - (MAX_ARG_PAGES * PAGE_SIZE - bprm->exec);
 
 	/* stack the program arguments and environment */
 	if (elf_fdpic_transfer_args_to_stack(bprm, &sp) < 0)
-- 
1.8.1.2


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* [PATCH 2/2] Fix /proc/<pid>/auxv for FDPIC binaries
  2013-02-26 15:09 [PATCH 1/2] Fix AT_EXECFN auxv for no-MMU fdpic Mark Salter
@ 2013-02-26 15:09 ` Mark Salter
  0 siblings, 0 replies; 2+ messages in thread
From: Mark Salter @ 2013-02-26 15:09 UTC (permalink / raw)
  To: Alexander Viro; +Cc: linux-fsdevel, linux-kernel, Mark Salter

The FDPIC loader is not storing aux vector info in mm->saved_aux so the aux vectors were
not being exposed through /proc/<pid>/auxv. This patch copies the aux vectors stored on
the user stack into mm->saved_aux so that they may be available through procfs.

Signed-off-by: Mark Salter <msalter@redhat.com>
---
 fs/binfmt_elf_fdpic.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/fs/binfmt_elf_fdpic.c b/fs/binfmt_elf_fdpic.c
index af4c9a4..9651918 100644
--- a/fs/binfmt_elf_fdpic.c
+++ b/fs/binfmt_elf_fdpic.c
@@ -478,7 +478,7 @@ static int create_elf_fdpic_tables(struct linux_binprm *bprm,
 				   struct elf_fdpic_params *interp_params)
 {
 	const struct cred *cred = current_cred();
-	unsigned long sp, csp, nitems;
+	unsigned long sp, csp, nitems, auxv_end;
 	elf_caddr_t __user *argv, *envp;
 	size_t platform_len = 0, len;
 	char *k_platform, *k_base_platform;
@@ -594,6 +594,7 @@ static int create_elf_fdpic_tables(struct linux_binprm *bprm,
 	} while (0)
 
 	nr = 0;
+	auxv_end = csp;
 	csp -= 2 * sizeof(unsigned long);
 	NEW_AUX_ENT(AT_NULL, 0);
 	if (k_platform) {
@@ -645,6 +646,10 @@ static int create_elf_fdpic_tables(struct linux_binprm *bprm,
 #endif
 #undef NEW_AUX_ENT
 
+	if (copy_from_user(current->mm->saved_auxv,
+			   (const char __user *) csp, auxv_end - csp))
+		return -EFAULT;
+
 	/* allocate room for argv[] and envv[] */
 	csp -= (bprm->envc + 1) * sizeof(elf_caddr_t);
 	envp = (elf_caddr_t __user *) csp;
-- 
1.8.1.2


^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2013-02-26 15:09 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-02-26 15:09 [PATCH 1/2] Fix AT_EXECFN auxv for no-MMU fdpic Mark Salter
2013-02-26 15:09 ` [PATCH 2/2] Fix /proc/<pid>/auxv for FDPIC binaries Mark Salter

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.