Commit Graph

3242 Commits

Author SHA1 Message Date
martin bd1da3f26a Pull up following revision(s) (requested by thorpej in ticket #758):
libexec/ld.elf_so/map_object.c: revision 1.61
	libexec/ld.elf_so/headers.c: revision 1.68
	libexec/ld.elf_so/rtld.c: revision 1.203

PT_GNU_RELRO segments are arranged such that their vaddr + memsz ends
on a linker common page size boundary.  However, if the common page size
used by the linker is less than the VM page size being used by the kernel,
this can end up in the middle of a VM page and when the region is write-
protected, this can cause objects in neighboring .data to get incorrectly
write-protected, resulting in a crash.

Avoid this situation by calculating the end of the RELRO region not by
rounding memsz up to the VM page size, but rather by adding vaddr + memsz
and then truncating to the VM page size.

Fixes PR toolchain/55043.

XXX pullup-9
2020-03-08 10:22:29 +00:00
martin 306cf536de Pull up following revision(s) (requested by uwe in ticket #535):
libexec/ld.elf_so/arch/powerpc/ppc_reloc.c: revision 1.60
	libexec/ld.elf_so/arch/powerpc/ppc_reloc.c: revision 1.59

Resolve ADDR16_LO, ADDR16_HI, and ADDR16_HA relocs.

Recent GNU ld does not resolve them statically if the reloc is in a
writable section and the symbol is not already referenced from text.

Use existing lo() and hi() macros.  Same object code is generated.
2019-12-09 16:14:10 +00:00
martin 6b20b3769b Pull up following revision(s) (requested by uwe in ticket #534):
libexec/ld.elf_so/rtld.c: revision 1.201

_rtld_relro - fix debug printf format for a size_t argument
2019-12-09 16:12:16 +00:00
martin 37ebfa176c Pull up following revision(s) (requested by nakayama in ticket #469):
lib/libc/tls/tls.c: revision 1.10
	lib/libc/tls/tls.c: revision 1.11
	lib/libc/tls/tls.c: revision 1.12
	lib/libc/tls/tls.c: revision 1.13
	libexec/ld.elf_so/tls.c: revision 1.13
	libexec/ld.elf_so/tls.c: revision 1.14
	libexec/ld.elf_so/Makefile: revision 1.142
	lib/libc/tls/Makefile.inc: revision 1.3
	usr.bin/ldd/Makefile.elf: revision 1.6

PR 54093: Align static TLS area to max_align_t.
Use alignof and not size_t for platforms with non-natural base
alignments.

Mirror the ld.elf_so logic for handling aligning the TLS size.
Most noticable, recompute the start of the TLS area for variant I
relative to the TCB. This makes a difference when the segment size and
base alignment don't agree.

Fix PR/54074 and PR/54093 completely.
More similar to the ld.elf_so logic, it is necessary to align with
p_align first.  Also, invert the #ifdef condition for consistency.

Should fix regression for static linking binaries:
http://releng.netbsd.org/b5reports/sparc/commits-2019.11.html#2019.11.10.23.39.03
http://releng.netbsd.org/b5reports/sparc64/commits-2019.11.html#2019.11.16.04.10.33
2019-11-26 08:12:26 +00:00
martin 80b1b01164 Pull up following revision(s) (requested by kamil in ticket #209):
libexec/ld.elf_so/rtld.c: revision 1.198

Return the ELF loader dl_phdr_info information for dl_iterate_phdr(3)
Sync the behavior of dl_iterate_phdr(3) with Linux/FreeBSD/OpenBSD.
2019-09-18 16:09:07 +00:00
martin b522530833 Pull up following revision(s) (requested by brad in ticket #110):
libexec/lfs_cleanerd/lfs_cleanerd.c: revision 1.59
	libexec/lfs_cleanerd/lfs_cleanerd.8: revision 1.19
	sbin/resize_lfs/resize_lfs.c: revision 1.15
	usr.sbin/puffs/rump_lfs/rump_lfs.c: revision 1.19
	libexec/lfs_cleanerd/lfs_cleanerd.c: revision 1.60
	lib/libutil/getdiskrawname.c: revision 1.6
	tests/fs/common/fstest_lfs.c: revision 1.7

Use getdiskrawname to find the device name.
Reviewed by Christos

 -

Teach getdiskrawname and getdiskcookedname about zvols.
Reviewed by Christos

 -

Add support for passing the raw device name separate from the
filesystem.  This is useful in the case where the cleaner is compiled
into code, such as rump_lfs and the ATF tests.  This helps to fix
bin/54488

 -

The cleaner is compiled into rump_lfs and executed as a thread.  Pass
in the raw device using the new -J option.  This avoids the use of
getdiskrawname which is not particularly rump safe in this context and
insures that the rump container device is used for cleaning, not the
outer device.
2019-09-02 16:16:56 +00:00
martin 71b9ece811 Pull up following revision(s) (requested by rmind in ticket #140):
external/bsd/libnv/lib/Makefile: revision 1.3
	usr.sbin/npf/npfd/Makefile: revision 1.7
	lib/libnpf/Makefile: revision 1.11
	lib/libnpf/Makefile: revision 1.12
	libexec/identd/Makefile: revision 1.18
	usr.sbin/npf/npfctl/Makefile: revision 1.14
	lib/npf/mod.mk: revision 1.8
	external/bsd/libnv/lib/srcs.mk: revision 1.1

libnpf fix: link the library itself to libnv; libnpf users should not be
expected to assume this dependency.

Move common parts into a makefile fragment usable from elsewhere.
Suggested by mrg.

Include libnv directly into this library
2019-09-01 13:18:39 +00:00
martin 3cc105ffd5 Pull up following revision(s) (requested by kamil in ticket #61):
libexec/telnetd/telnetd.c: revision 1.56
	libexec/telnetd/sys_term.c: revision 1.49

telnetd: Stop defining the same variables concurrently in bss and data
auth_level and require_secure_login were defined in two places:

 - global.c that picked it from headers and removed 'extern'
 - telnetd.c that initialized it to 0

line was defined twice: in global.c and sys_term.c with a non-zero value.

Remove the definition and initialization from sys_term.c and initialize
the variable early in main().

Detected during the build of telned with Address Sanitizer (MKSANITIZER).
Reviewed by <mrg>
2019-08-16 19:12:46 +00:00
uwe 8fd03c43d4 Tweak markup some more. 2019-07-15 01:26:15 +00:00
uwe c42a8ccb39 Improve (hopefully) mark up of the capabilities tables. 2019-07-12 03:32:41 +00:00
uwe 776605b5ed Use proper markup instead of .Em to refer to capabilities, structure
memebers, etc in the text (but not in the tables yet, as those require
more rework).
2019-07-12 01:53:45 +00:00
wiz 25c730350a Merge lines. Fixes display problem noted in PR 54361 by he@ 2019-07-11 09:48:22 +00:00
maya 3bb853ed54 r_symndx is no longer declared, use symnum and initialize it before use.
Completes the changes in the commit:
"Replace COMBREL with just-in-time check in _rtld_relocate_nonplt_objects."
http://mail-index.netbsd.org/source-changes/2017/06/19/msg085496.html
2019-04-15 19:13:03 +00:00
maya 53dcb847d9 $ORIGIN support is now enabled.
Thanks martin for the heads up.
2019-04-15 10:17:01 +00:00
abhinav 55eec9d71a Typo: s/a indirection/an indirection/ 2019-04-15 06:42:06 +00:00
wiz a30bc70869 Use more Dv. 2019-04-14 22:09:50 +00:00
maya 9a04775cfa Note that we now search DT_RUNPATH paths as well. 2019-04-14 20:27:02 +00:00
christos fb007af046 undo previous unlock/relock; it is not needed now that we added the tls model
declaration to all externs in jemalloc (suggested by joerg@)
2019-04-14 19:21:37 +00:00
christos 15018ca013 Fix c++ exceptions on arm; jemalloc calls _rtld_tls_get_addr from inside
dl_iterate_phdr, so we need to unlock and relock.
2019-04-13 03:15:25 +00:00
rin e66054b66e Do not compile __tls_get_addr() into ldd(1), which fixes ldd(1) crashing
on arm after switching to new jemalloc.

jemalloc invokes __tls_get_addr() under some condition. If anything other
than ld.elf_so nor libc exports it, inconsistency arises as a result.
2019-04-13 00:23:32 +00:00
christos 39fadeea40 Disable optimization for rtld.c on the vax with gcc-7. 2019-04-03 21:37:58 +00:00
martin 9e275c0f36 Account for cgihandler being set when counting the number of CGI environment
headers we are about to set. Avoids an assertion failure (and overruninng
the array) later.
2019-03-29 14:46:44 +00:00
mrg 58a223ca24 add $NetBSD$ 2019-03-27 04:50:30 +00:00
mrg 8b21018e17 on m68010 set BOZO_WRSZ to 16k and BOZO_WRSZ to 64k. 2019-03-08 03:12:28 +00:00
mrg 767fb2605a call this bozohttpd 20190228, and merge the CHANGES entries from the
previous release.
2019-02-28 09:16:42 +00:00
mrg 08dbfa234a add ssl specific timeout value (30s). if SSL_accept() doesn't
work with in this timeout value, ssl setup now fails.

mostly different from, but inspired from the patch in PR 50655
2019-02-28 08:28:21 +00:00
mrg f0885992ce - bump buffer sizes to avoid potential truncation issues 2019-02-04 04:36:41 +00:00
mrg fbffadb9f8 - add or adjust /* FALLTHROUGH */ where appropriate
- add __unreachable() after functions that can return but won't in
  this case, and thus can't be marked __dead easily
2019-02-03 03:19:25 +00:00
lukem fc9234654d clarify the fd used for blacklisting.
Use STDIN_FILENO instead of 0 as the fd to blacklist_r(),
since we use the former in ftpd.c
2019-01-29 23:19:30 +00:00
lukem 086f834b20 NetBSD-ftpd 20180428
Update version to "NetBSD-ftpd 20180428" for changes:
- Fix violations of the sequence point rule.
- Check that stat and fstat succeed.
- Support blacklistd(8) hooks.
- Clear utmpx struct before writing it to wtmpx files.
- Fix directory stream leaks.
- Use explicit_memset(3) instead of memset(3) to clear password.
- Fix scope of variable. PR misc/50665.
- Ensure that closing socket exists. CID 603440.
- Add -f option to ftpd to stay in foreground with -D. PR bin/53221.
2019-01-29 11:51:05 +00:00
dholland ad8aa774f5 fix duplicated chunk from merge 2019-01-27 04:33:29 +00:00
pgoyette d91f98a871 Merge the [pgoyette-compat] branch 2019-01-27 02:08:33 +00:00
mrg 00e064adab o don't display special files in the directory index. they aren't
served, but links to them are generated.
2019-01-22 05:32:57 +00:00
skrll 69e8dca2e5 Adapt https://svnweb.freebsd.org/base?view=revision&revision=342113 to
NetBSD.

This brings us resolving for dynamically loaded libraries and makes
tests/libexec/ld.elf_so/t_thread_local_dtor pass.

With suggestions from joerg@
2019-01-18 11:59:03 +00:00
mrg 8f49d6e252 rework size_arrays():
- avoid calloc, use bozomalloc
- minor CSE
- fix bozoprefs->size setting when increasing the size (new total was
  being added to the prior total.)  found by clang static analyzer
  from rajeev_v_pillai.

pass httpd to size_arrays() now.
free(NULL) is legal.
2019-01-18 06:04:10 +00:00
mrg 5335936687 fix a few problems pointed out by clang static analyzer, from rajeev_v_pillai:
- bozostrnsep() may return with "in = NULL", so check for it.
- nul terminating in bozo_escape_rfc3986() can be simpler
- don't use uniinit variables in check_remap()
- don't use re-used freed data in check_virtual().  this one is tricky as
  the original code was:
	free(request->hr_file);
	request->hr_file = bozostrdup(httpd, request, s ? s : "/");
  however, bozostrdup() may reference request->hr_file.
2019-01-18 05:48:31 +00:00
mrg 9b91523ebd - call this 20190116
- adjust the directory indexing again:
  - don't include "index.html" in html headers
  - additional escaping of names
  - re-add top/bottom borders
  - adds an aquamarine table header
  - Zebra-stripes table rows using CSS instead of code
  all from "Rajeev V. Pillai" <rajeev_v_pillai@yahoo.com>
2019-01-17 07:46:16 +00:00
mrg d1eeb82409 add 'check' target to toplevel makefile.
fix the t11.out output now that CGI parsing works better.
2019-01-17 07:39:00 +00:00
mrg 9c0805993a - fix CGI '+' param and error handling.
- remove unused parameter to daemon_poll_err().

both from "Rajeev V. Pillai" <rajeev_v_pillai@yahoo.com>
2019-01-17 07:34:06 +00:00
christos d17b8a0ea7 print the program name when we don't find a library.
XXX: really most _rtld_error() should do that, and most do.
2019-01-12 18:58:10 +00:00
uwe 62a27ee607 Spell "occurrence" correctly. 2019-01-09 17:19:08 +00:00
mrg 4aff0e8a96 remove reference to deleted -r option. fixes PR#53840 from J. Lewis Muir. 2019-01-08 06:04:29 +00:00
joerg 06c9aa1116 When loading a non-PIE main binary, the virtual address must match.
Use MAP_TRYFIXED and verify that the result matches the expectation.
2019-01-06 19:44:54 +00:00
joerg 08e505b543 MAP_ALIGNED has existed for years, just assume it exists. 2019-01-04 19:54:56 +00:00
martin e4d02a93c7 Add support for DT_RUNPATH - it is just the same as we always have treated
DT_RPATH.  Approved by core.
2018-12-30 11:55:15 +00:00
christos d30b19ef3d - fix wrong reloc name in assert
- fix uninitialized
2018-12-30 03:23:46 +00:00
christos 61268f23da binutils 2.31.1 can put copy relocations in the relro segment. Delay
protecting the relro segment for the main object until copy relocations
are done.
2018-12-30 01:48:37 +00:00
christos 2c62c57fa6 initfini array support for everyone. 2018-12-27 18:58:14 +00:00
christos ba044c6310 explain why we skip objmain. 2018-12-27 18:57:43 +00:00
mrg 48003606bd minor rewording. fix alphabeta ordering of contributors. 2018-12-19 12:40:32 +00:00