Age | Commit message (Collapse) | Author |
|
executable regions which are writable. If a section of an executable is
writable and executable, it is much easier for errant code to modify the
executable's behavior.
Two current areas in shared library environments which have this
critical problem are the GOT (Global Offset Table) and PLT (Procedure
Linkage Table). The PLT is required to be executable and both GOT and
PLT are writable on most architectures. On most ELF architecture
machines this would cause shared libraries to have data and BSS marked
as executable.
Padding to the linker script for programs and shared libraries/objects
to isolate the GOT and PLT into their own load sections in the
executables. This allows only the text(readonly) region and the PLT
region to be marked executable with the normal data and BSS not marked
as executable. The PLT region is still marked executable on most
architectures because the PLT lives in the "data" or "BSS" regions
and the dynamic loader will need to modify it. Since the GOT and PLT
should only ever be written by the dynamic linker, it will be modified
to mprotect those regions so that they are not writable during normal
execution. If the dynamic linker needs to modify the regions later,
(eg for lazy binding), it will mprotect the region, make the necessary
changes, and mprotect it back. Since it is possible to receive a
signal which would interrupt the program flow and perhaps cause the
dynamic linker to modify the same (or nearby) PLT references, it is now
necessary for signals to be blocked for the duration of the mprotect.
|
|
but will produce old style executables when the other changes appear.
|
|
|
|
|
|
ok miod drahn marc
|
|
|
|
This behavior broke libraries which were named libN-X.Y.so.A.B. ok pval, espie
|
|
|
|
|
|
Update Safe module to version 2.09
millert@ ok
|
|
abbreviation for --keep-locals. from binutils-current.
millert@ ok.
|
|
|
|
sense this way and works around an apparent gcc optimizer bug on
macppc related to inline functions. OK drahn@
|
|
|
|
|
|
o Prevent close() from clobbering errno.
Patch from Peter Werner; closes PR 2995
|
|
time anymore.
|
|
|
|
|
|
|
|
|
|
<hshoexer at yerbouti dot franken dot de> via pr/3014.
mickey@ and weingart@ ok.
|
|
|
|
|
|
is already in the src dir. miod@ OK
|
|
with optimization.
|
|
now build libraries with propolice enabled. Without this, existing
binaries (such as ports/packages) that link with any system library
other than libc will fail with an undefined symbol of "___guard"
(__guard on ELF).
Pointed out by markus@ and discussed with deraadt@
|
|
|
|
fixes the "NEEDED crtend.o" problem that appeared in varios ports and
had to be workarounded. from thorpej@NetBSD, thanks to drahn@ for
pointing it out; ok drahn espie
|
|
attack protection scheme, into gcc.
This protection is enabled by default. It can be turned off by using the
-fno-stack-protector flag.
Code by Hiroaki Etoh (etoh at jp dot ibm dot com); work on openbsd-specific
integration by fgsch@, deraadt@ and myself; tests by fgsch@, naddy@ and
myself; beer drinking by myself.
Please note that system upgrades with this new code will require a new
libc and ld.so to be build and installed before the propolice-enabled
compiler can be installed.
|
|
|
|
allow, e.g., linking against static debug qt (or debug static mozilla for
that matter).
okay miod@
|
|
--
A CRLF injection vulnerability has been reported for Lynx that
may allow an attacker to include extra HTTP headers when viewing
web pages.
If Lynx is called from the command line, carriage return and line
feed (CRLF) characters may be included in the specified URL.
These characters are not escaped when the input is used to construct
a HTTP request.
URL: http://www.flora.org/lynx-dev/html/month082002/msg00211.html
henning@ fgs@ pjanzen@ pvalchev@ ok
|
|
|
|
|
|
problems with files > 2GB.
-print bytes in/out to stderr in verbose mode
ok millert@ fgsch@
|
|
instead so we don't need to use the (emulated) setre[ug]id() in libc.
|
|
I don't think it is needed anymore and it breaks MM_Unix's prefixify test.
|
|
=head[1-4] correctly.
|
|
macros.h on vax (noticed by hugh).
|
|
However, we define that to the empty string in OpenBSD since we
want to format and install perl's man pages ourselves. As a result,
man pages were not being generated from .pm files in 3rd party modules.
To fix this, go back to the older behavior of using $inst_man{1,3}dir.
Also, while I'm in here, improve the regexp for deciding what
consists of pod, based on ExtUtils-MakeMaker-6.05.
|
|
setre[ug]id().
|
|
|
|
|
|
|
|
submitted to perlbug@
ok millert@
|
|
|
|
|
|
|
|
do the lndir once (like apache, for example),
depend on ${.OBJDIR}/config.over .
make separate rules for the toke.*o, since
gcc blows on it on some platforms (hppa for now).
would be just nice if smth like this worked, but it does not:
.if make(toke.o)
CFLAGS+=-O0
.endif
millert@ ok
|