OpenBSD src changes summary for 2017-06-04 ==========================================
games/fortune gnu/usr.bin/binutils-2.17 gnu/usr.bin/perl libexec/ld.so share/man share/mk sys/arch/amd64/conf sys/arch/amd64/include sys/arch/arm64/arm64 sys/arch/arm64/conf sys/arch/i386/conf sys/arch/i386/i386 sys/arch/luna88k/dev sys/conf sys/dev/isa sys/dev/pci sys/dev/pv sys/net80211 usr.bin/mandoc usr.bin/tmux usr.sbin/installboot == games ============================================================= 01/07 == http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/games fortune ~ fortune/fortune.c ~ strfile/strfile.c > Use proper bool types in fortune(6). > OK tb@, phessler@ (previous version) (fcambus@) == gnu =============================================================== 02/07 == http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/gnu usr.bin/binutils-2.17 ~ gas/config/tc-i386.c > Replace ((2 << 31) - 1) with 0xffffffff, which is equivalent but doesn't > cause a shift overflow on a 32-bit arch (i386). ok kettenis@ (naddy@) usr.bin/perl ~ cpan/File-Path/lib/File/Path.pm ~ cpan/File-Path/t/FilePathTest.pm ~ cpan/File-Path/t/Path.t ~ cpan/File-Path/t/Path_root.t ~ cpan/File-Path/t/Path_win32.t > Update to perl File::Path 2.13 for security fixes > Reccomended by upstream - jkeenan AT pobox.com > OK sthen@ (afresh1@) ~ cpan/File-Path/lib/File/Path.pm TAGGED OPENBSD_6_0 > Use fchmod to avoid a race condition in File::Path > See errata 026_perl > Commit it deraadt@ (afresh1@) ~ cpan/File-Path/lib/File/Path.pm TAGGED OPENBSD_6_1 > Use fchmod to avoid a race condition in File::Path > See errata 010_perl > Commit it deraadt@ (afresh1@) == libexec =========================================================== 03/07 == http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/libexec ld.so ~ i386/rtld_machine.c > For the memory operand, clang passes in an address relative to the > stack pointer. We cannot use this twice while pushing values on > the stack. Instead load the operand address into a register and > use this as base address. Use %edx since it is already marked as > clobbered. Also fixes a syntax problem for clang. > ok mlarkin@ (naddy@) ~ aarch64/ldasm.S > Remove the sigprocmask stub that has long been made unused since > the use of kbind. The code was #if 0'd anyway. > Reminded by miod@ (patrick@) == share ============================================================= 04/07 == http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/share man ~ man7/roff.7 > Pure preprocessor implementation of the roff(7) .ec and .eo requests > (escape character control), touching nothing after the preprocessing > stage and keeping even the state variable local to the preprocessor. > Since the escape character is also used for line continuation, this > requires pulling the implementation of line continuation from the > input reader to the preprocessor, which also considerably shortens > the code required for that. > When the escape character is changed, simply let the preprocessor > replace bare by escaped backslashes and instances of the non-standard > escape character with bare backslashes - that's all we need. > Oh, and if anybody dares to use these requests in OpenBSD manuals, > sending a medium-sized pack of axe-murderes after them might be a > worthwhile part of the punishment, but probably insuffient on its own. > (schwarze@) ~ man7/roff.7 > Implement the roff(7) .mc (right margin character) request. > The Tcl/Tk manual pages use this extensively. > Delete the TERM_MAXMARGIN hack, it breaks .mc inside .nf; > instead, implement a proper TERMP_BRNEVER flag. (schwarze@) mk ~ bsd.dep.mk > pass better arguments to mkdep. > - some std= parameters are actually critical, -std=c++11 makes a huge > difference for clang. > - explicitly ask mkdep to run the C++ compiler for C++ code, as again, > some compilers will see the difference. > (this should allow us to repair make depend under src/gnu/usr.bin/clang) > okay kettenis@ (espie@) == sys =============================================================== 05/07 == http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/sys arch/amd64/conf ~ Makefile.amd64 > Create gap.* with umask 007 instead of 077 to make kernel builds after > make release work without prior cleanup. > discussed with deraadt (tb@) arch/amd64/include ~ bus.h > Re-arrange struct bus_dmamap members > This reduces holes/padding and makes the struct smaller by 8 bytes. > ok kettenis@ (sf@) arch/arm64/arm64 ~ autoconf.c ~ locore.S + locore0.S > Split early startup code out of locore.S into locore0.S. Adjust link > run so that this locore0.o is always at the start of the executable. > But randomize the link order of all other .o files in the kernel, so > that their exec/rodata/data/bss segments land all over the place. > Late during kernel boot, unmap the early startup code. > As a result, the internal layout of every newly build bsd kernel is > different from past kernels. Internal relative offsets are not known > to an outside attacker. The only known offsets are in the startup code, > which has been unmapped. > Ramdisk kernels cannot be compiled like this, because they are gzip'd. > When the internal pointer references change, the compression dictionary > bloats and results in poorer compression. > With guidance and ok deraadt@ (patrick@) ~ locore.S > Remove comment that no longer is true. esym is not written by our > bootloader anymore, so it doesn't matter where it is stored. While > there do some whitespace cleanup. (patrick@) arch/arm64/conf ~ Makefile.arm64 ~ files.arm64 > Split early startup code out of locore.S into locore0.S. Adjust link > run so that this locore0.o is always at the start of the executable. > But randomize the link order of all other .o files in the kernel, so > that their exec/rodata/data/bss segments land all over the place. > Late during kernel boot, unmap the early startup code. > As a result, the internal layout of every newly build bsd kernel is > different from past kernels. Internal relative offsets are not known > to an outside attacker. The only known offsets are in the startup code, > which has been unmapped. > Ramdisk kernels cannot be compiled like this, because they are gzip'd. > When the internal pointer references change, the compression dictionary > bloats and results in poorer compression. > With guidance and ok deraadt@ (patrick@) ~ Makefile.arm64 > Create gap.* with umask 007 instead of 077 to make kernel builds after > make release work without prior cleanup. > discussed with deraadt (tb@) arch/i386/conf ~ Makefile.i386 > Create gap.* with umask 007 instead of 077 to make kernel builds after > make release work without prior cleanup. > discussed with deraadt (tb@) arch/i386/i386 ~ acpi_wakecode.S ~ mptramp.s > Catch up with changes made on amd64 (kettenis@): > Generating mixed 16-bit/32-bit/64-bit code with clang's integrated > assembler is a bit tricky. It supports the .code16, .code32 and > .code64 directives. But it doesn't know about the data16/data32 and > addr16/addr32 instruction prefixes. Instead it tries to determine > those from the instruction opcode. It mostly succeeds, but there are > a couple of corner cases where clang will generate the "addr32" form > where gas generates the "addr16" form in .code16 segments. That > should be no problem (and just waste a couple of bytes), but it makes > comparing the generated code a bit difficult. > Allow the trampoline code to be compiled with both. For clang #define > away the addr32 prefix and avoid using the data32 prefix by using a > mnemonic that explicitly encodes the size of the operand. Add a few > addr32 prefixes in .code16 blocks to reduce the differences between > code generated by clang and gas. > ok deraadt@ (naddy@) arch/luna88k/dev ~ lunaws.c ~ sio.c ~ siotty.c ~ siovar.h > Sync with current NetBSD/luna68k code. (aoyama@) conf ~ makegap.sh > Don't need to provide a padbyte value for .bss, it will always be 0 > pointed out by kettenis (deraadt@) dev/isa ~ if_eg.c > Remove unused function, as pointed out by clang. ok deraadt@ kettenis@ > (naddy@) ~ if_ex.c > fix a bungled logical/bitwise expression pointed out by clang; ok deraadt@ > (naddy@) dev/pci ~ if_sk.c > use htolem32 and lemtoh32 instead of htole32 and letoh32. > saves about half a k on sparc64. (dlg@) ~ drm/ttm/ttm_bo.c ~ drm/ttm/ttm_bo_api.h ~ drm/ttm/ttm_bo_driver.h ~ drm/ttm/ttm_bo_manager.c ~ drm/ttm/ttm_bo_util.c ~ drm/ttm/ttm_bo_vm.c > Switch the TTM code over to the generic DRM VMA manager. > ok jsg@ (kettenis@) ~ drm/radeon/radeon_object.h > Switch the radeondrm(4) driver over to TTM using the new DRM VMA manager. > ok jsg@ (kettenis@) dev/pv ~ vmt.c > update link to Ken Kato's vmware backdoor protocol documentation > from Seth Jackson (jmatthew@) net80211 ~ ieee80211_input.c ~ ieee80211_node.c > Add sizes for free for the RSN IEs. Rewrite ieee80211_save_ie() slightly > to make it more readable. > help, many explanations and ok stsp (tb@) == usr.bin =========================================================== 06/07 == http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/usr.bin mandoc ~ read.c ~ roff.c > Pure preprocessor implementation of the roff(7) .ec and .eo requests > (escape character control), touching nothing after the preprocessing > stage and keeping even the state variable local to the preprocessor. > Since the escape character is also used for line continuation, this > requires pulling the implementation of line continuation from the > input reader to the preprocessor, which also considerably shortens > the code required for that. > When the escape character is changed, simply let the preprocessor > replace bare by escaped backslashes and instances of the non-standard > escape character with bare backslashes - that's all we need. > Oh, and if anybody dares to use these requests in OpenBSD manuals, > sending a medium-sized pack of axe-murderes after them might be a > worthwhile part of the punishment, but probably insuffient on its own. > (schwarze@) ~ man_term.c ~ mdoc_term.c ~ term.c ~ term.h > Make term_flushln() simpler and more robust: > Eliminate the "overstep" state variable. > The information is already contained in "viscol". > Minus 60 lines of code, no functional change intended. (schwarze@) ~ man_term.c ~ mdoc_man.c ~ mdoc_term.c ~ roff.c ~ roff.h ~ roff_html.c ~ roff_term.c ~ roff_validate.c ~ tbl_term.c ~ term.c ~ term.h > Implement the roff(7) .mc (right margin character) request. > The Tcl/Tk manual pages use this extensively. > Delete the TERM_MAXMARGIN hack, it breaks .mc inside .nf; > instead, implement a proper TERMP_BRNEVER flag. (schwarze@) tmux ~ screen-write.c ~ tmux.1 ~ tty.c > Typo/style; plus man page escaping from jmc. (nicm@) ~ log.c ~ proc.c ~ server.c ~ signal.c ~ tmux.1 ~ tmux.h > Support SIGUSR2 to stop and start logging for an existing server. Also > we currently only have two log levels so just use -v and -vv rather than > -v and -vvvv, and clarify the man page entry for -v. (nicm@) ~ input.c ~ screen.c ~ tmux.h ~ utf8.c ~ window.c > Be more strict about escape sequences that rename windows or set titles: > ignore any that not valid UTF-8 outright, and for good measure pass the > result through our UTF-8-aware vis(3). (nicm@) ~ utf8.c > Remove unused variable. (nicm@) ~ input.c > Add a timeout to prevent the sequences which wait for a specific > terminator (OSC, APC and DCS) waiting forever, which helps to avoid > garbage (cat /dev/random) locking up panes completely. This (and the > last commit) prompted by a discussion with theo. (nicm@) ~ mode-tree.c > Do not leak command, from David CARLIER. (nicm@) == usr.sbin ========================================================== 07/07 == http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/usr.sbin installboot ~ i386_installboot.c > Malloc the superblock buffer to make sure that it is properly aligned. > On i386, clang puts the char array at an odd address in .bss. > ok deraadt@ (naddy@) =============================================================================== _______________________________________________ odc mailing list [email protected] http://www.squish.net/mailman/listinfo/odc
