[lkml]   [1998]   [Oct]   [31]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
Patch in this message
Subject[PATCH] include/asm-i386/elf.h, kernel 2.1.126
I'm working on a product where it is desirable for a process to have as
much run-to-run repeatability as possible. I've run into problems with
exec() introducing needless randomness via the registers. Clearing the
registers in _start (crt0.s) is eons too late. I'm in favor of spending
the bytes and cycles to remove the randomness where it originates.

ELF_PLAT_INIT is used in fs/binfmt_elf.c .

----------------------------------------------------------- (John Reiser)
-----------------------------------------------------------diff -u linux-2.1.126/include/asm-i386/elf.h linux/include/asm-i386/elf.h
--- linux-2.1.126/include/asm-i386/elf.h Wed Jun 24 14:30:11 1998
+++ linux/include/asm-i386/elf.h Sat Oct 31 05:52:59 1998
@@ -33,7 +33,10 @@
shared libraries that have been loaded before the code runs.

A value of 0 tells we have no such handler. */
-#define ELF_PLAT_INIT(_r) _r->edx = 0
+#define ELF_PLAT_INIT(_r) _r->edi = _r->esi = _r->ebp = _r->ebx = _r->edx = _r->ecx = _r->eax = 0
+/* Clear all registers except %esp, to improve repeatability, debugability,
+ make life easier for conservative garbage collectors, and reduce
+ covert channels from one process to another. */

#define ELF_EXEC_PAGESIZE 4096
 \ /
  Last update: 2005-03-22 13:45    [W:0.036 / U:8.864 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site