svn commit: r189255 - in stable/7/sys: . contrib/pf dev/ath/ath_hal
dev/cxgb kern
Robert Watson
rwatson at FreeBSD.org
Sun Mar 1 14:48:19 PST 2009
Author: rwatson
Date: Sun Mar 1 22:48:18 2009
New Revision: 189255
URL: http://svn.freebsd.org/changeset/base/189255
Log:
Merge r187686 from head to stable/7:
When a statically linked binary is executed (or at least, one without
an interpreter definition in its program header), set the auxiliary
ELF argument AT_BASE to 0 rather than to the address that we would
have mapped the interpreter at if there had been one.
The ELF ABI specifications appear to be ambiguous as to the desired
behavior in this situation, as they define AT_BASE as the base address
of the interpreter, but do not mention what to do if there is none.
On Solaris, AT_BASE will be set to the base address of the static
binary if there is no interpreter, and on Linux, AT_BASE is set to 0.
We go with the Linux semantics as they are of more immediate utility
and allow the early runtime environment to know that the kernel has
not mapped an interpreter, but because AT_PHDR points at the ELF
header for the running binary, it is still possible to retrieve all
required mapping information when the process starts should it be
required. Either approach would be preferable to our current behavior
of passing a pointer to an unmapped region of user memory as AT_BASE.
Sponsored by: Google
Modified:
stable/7/sys/ (props changed)
stable/7/sys/contrib/pf/ (props changed)
stable/7/sys/dev/ath/ath_hal/ (props changed)
stable/7/sys/dev/cxgb/ (props changed)
stable/7/sys/kern/imgact_elf.c
Modified: stable/7/sys/kern/imgact_elf.c
==============================================================================
--- stable/7/sys/kern/imgact_elf.c Sun Mar 1 22:40:15 2009 (r189254)
+++ stable/7/sys/kern/imgact_elf.c Sun Mar 1 22:48:18 2009 (r189255)
@@ -830,7 +830,8 @@ __CONCAT(exec_, __elfN(imgact))(struct i
uprintf("ELF interpreter %s not found\n", interp);
return (error);
}
- }
+ } else
+ addr = 0;
/*
* Construct auxargs table (used by the fixup routine)
More information about the svn-src-stable-7
mailing list