summaryrefslogtreecommitdiff
path: root/gnu
AgeCommit message (Collapse)Author
2003-02-21push_frame_in_operand: add the setup and restore code for setjmp on powerpc ↵Hiroaki Etoh
and alpha
2003-02-21sweep_string_in_operand: properly sweep inline function frame.Hiroaki Etoh
2003-02-21mark the top address of inline function frame with integrated flag for the ↵Hiroaki Etoh
propolice protection
2003-02-21In the case of no optimization, fix the problem that the first argument ↵Hiroaki Etoh
doesn't copy to the region of local variables.
2003-02-19Give milter the ghost of a chance of working; still not supported in any way.Todd C. Miller
2003-02-19oopsMarc Espie
2003-02-17fix trampoline support on hppa. Tested by mickey@Marc Espie
(does not solve the C++ ctor problem, sorry)
2003-02-16place ro data into .rodata and not .text (now that it's handled special. 10x ↵Michael Shalayeff
to dale); espie@ ok
2003-02-16import texinfo 4.8 into the tree.Theo de Raadt
(okay theo, kettenis)
2003-02-16a few missing man pages converted from info documents; work done by jmcTheo de Raadt
2003-02-16typoTheo de Raadt
2003-02-16Synch cxxfilt man page with reality and arrange for it to get built andMarc Espie
installed. Noticed by jmc@
2003-02-15use real registers to propagete frame offset for powerpc.Hiroaki Etoh
2003-02-09cosmetic clean-up: use ${.TARGET} extensively, instead of hard-codingMarc Espie
target names.
2003-02-08When creating > 1 files with mktemp(1), make sure that if the creationPeter Valchev
of the n'th (n>1) file fails, the previous ones get removed before exit(1) Idea by jason; ok millert deraadt
2003-02-06use common elf.sc instead of own hppaobsd.sc, catch up w/ dale's elf work ↵Michael Shalayeff
for hppa; drahn@ lots of helps and ok
2003-02-05typos; isakmpd(8) ok niklas@, mailwrapper(8) help kjell@Jason McIntyre
2003-02-03disable a stack protection when the arch doesn't have stack_grows_downward.Hiroaki Etoh
2003-02-03add contains_fp declaration to examine whether the input contains frame ↵Hiroaki Etoh
pointer addressing.
2003-02-03prepare_stack_protection: add validate_insns_of_varrefs to validate insns of ↵Hiroaki Etoh
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.
2003-02-03modify general_induction_var not to generate the address of frame pointer ↵Hiroaki Etoh
plus minus constant as an induction variable.
2003-02-03delete unused "protector.h" inclusion.Hiroaki Etoh
2003-02-03modify assign_stack_local to move the addressing of frame pointer plus zero ↵Hiroaki Etoh
to the function plus_constant_wide. modify assign_stack_temp_for_type for allocating a space to return a structure.
2003-02-03modify expand_expr not to modify the addressing form of local variables: ↵Hiroaki Etoh
frame pointer plus constant.
2003-02-03modify plus_constant_wide to provide the address of frame pointer plus zero ↵Hiroaki Etoh
constant.
2003-02-03modify simplify_plus_minus not to assign the address of frame pointer plus ↵Hiroaki Etoh
no constant.
2003-02-03allocate a space (keep=5) to return a structure, not protecting it as a ↵Hiroaki Etoh
character string.
2003-02-02pass BSDSRCDIR in environment to submakes.Marc Espie
This `repairs' setting up BSDSRCDIR in /etc/mk.conf and nowhere else.
2003-02-02I've been guaranteed that guaranteed is better than guarenteed.Miod Vallat
2003-02-01typos;Jason McIntyre
chat(8): removed reference to uucico(8) ok deraadt@
2003-01-30Again this comment was not updated. now we have 7 load sections.Dale Rahn
2003-01-30ELF security enhancement: put .rodata into it's own load section insteadDale Rahn
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.
2003-01-24This is a project to modify executables so that they do not have anyDale Rahn
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.
2003-01-23Add a "DisableXProg" option to CVSROOT/config that can be used toTodd C. Miller
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.
2003-01-20In dirswitch(), don't free dir_name until right before allocatingTodd C. Miller
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.
2003-01-20No more libc_r and don't link explicitly with -lpthread Not havingTodd C. Miller
-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).
2003-01-19give a second chance for loading dependent modules:Marc Espie
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)
2003-01-19revamp .init call code to be saner:Marc Espie
- 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@.
2003-01-19In error message from dependent libraries, mention which dependent libraryMarc Espie
is trying to load another library.
2003-01-18protoize(1) man page, cobbled from various places by jmc@prioris.mini.pw.edu.plTheo de Raadt
2003-01-17Update comment for linker change which just committed.Dale Rahn
2003-01-17This is a project to modify executables so that they do not have anyDale Rahn
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.
2003-01-15typos; jmc@prioris.mini.pw.edu.plTheo de Raadt
2003-01-14Bye-bye libc_r. libc_r and libnpthread go away. libpthreadMarco S Hyman
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.
2003-01-13Add a compatibilty flag '-Z' for upcoming elf changes, does nothing currentlyDale Rahn
but will produce old style executables when the other changes appear.
2003-01-12Revert last change, causes issues on macppc and alpha.Miod Vallat
2003-01-07attribute(sentinel) improvements:Marc Espie
- 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@
2003-01-07prepare_stack_protection: add validate_insns_of_varrefs to validate insns of ↵Hiroaki Etoh
inline function for processors, which doesn't have long integer addition push_frame_of_insns: validate insns not to use long integer addition for powerpc
2003-01-06syncronous -> synchronousMiod Vallat
2003-01-06typo: s/specifed/specifiedChad Loder