Age | Commit message (Collapse) | Author |
|
|
|
|
|
outside address of a character array.
|
|
and alpha
|
|
|
|
propolice protection
|
|
doesn't copy to the region of local variables.
|
|
|
|
|
|
(does not solve the C++ ctor problem, sorry)
|
|
to dale); espie@ ok
|
|
(okay theo, kettenis)
|
|
|
|
|
|
installed.
Noticed by jmc@
|
|
|
|
target names.
|
|
of the n'th (n>1) file fails, the previous ones get removed before exit(1)
Idea by jason; ok millert deraadt
|
|
for hppa; drahn@ lots of helps and ok
|
|
|
|
|
|
pointer addressing.
|
|
inline function for processors, which doesn't have long integer addition.
push_frame_of_insns: validate insns to use powerpc specific addressing and alpha specific addressing.
|
|
plus minus constant as an induction variable.
|
|
|
|
to the function plus_constant_wide.
modify assign_stack_temp_for_type for allocating a space to return a structure.
|
|
frame pointer plus constant.
|
|
constant.
|
|
no constant.
|
|
character string.
|
|
This `repairs' setting up BSDSRCDIR in /etc/mk.conf and nowhere else.
|
|
|
|
chat(8): removed reference to uucico(8)
ok deraadt@
|
|
|
|
of putting it with the text. This removes the execute permission
from readonly data. This constrains the executable region to portions
of the executable which need to be executable. Note: not all processors
or mmus are capable of -X protection at the page level, but should
handle ELF images which specify specific RWX protections on each section.
|
|
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.
This diff was omitted from the original commit, this implements the
-Z option to produce traditional (non protected) executables.
|
|
disable support for Update-prog and Checkin-prog. This is a good
idea for anonymouse cvs servers or anyone who doesn't need this
feature. From Stefan Esser.
|
|
it again. This removes a potential double-free problem, whereby
this function could free dir_name and then immediately return due
to invalid directory syntax (without ever reassigning dir_name),
then re-enter and free dir_name again. Fix from Stefan Esser.
|
|
-lpthread may confuse perl's Configure since it wants to nm libs
to see what is in them butu I haven't noticed any problems with
this (yet).
|
|
look in the path of the main map before giving up.
ok deraadt@.
(This fixes a few kde issues, and removes loads of needs for ldconfig)
|
|
- build a tree of modules inter-dependencies.
- make sure dependent modules are .init'ed before depending modules.
- flag initialization so that cycles don't bork ld.so.
okay deraadt@, drahn@.
|
|
is trying to load another library.
|
|
|
|
|
|
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.
|
|
|
|
takes their place. The -pthread option to gcc uses libpthread.
ppc portion of patch from drahn@ (thanks). gcc portions of patch
OK espie@. Ports testing (no bad effects!) by naddy@
best build sequence is: build gcc, build system, build ports
remove /usr/lib/lib{c_r,npthread}.*. Note, once libc_r and
libnpthread is removed threaded ports will stop working until
they have been re-built using the libpthread and the updated gcc.
That's why the above build sequence is recommended.
|
|
but will produce old style executables when the other changes appear.
|
|
|
|
- move __null node to c-common.c so that sentinel can check for it
(since g++ __null is `special')
- rework diagnostics to be more clear. In particular, distinguish
`not terminated' from `terminated with a 0 of the wrong type'
ok miod@, millert@
|