OpenBSD src changes summary for 2017-02-08 ==========================================
distrib/miniroot libexec/ld.so regress/sys share/man sys/arch/alpha/include sys/arch/amd64/include sys/arch/amd64/stand/efiboot sys/arch/arm/include sys/arch/arm64/arm64 sys/arch/arm64/include sys/arch/arm64/stand/efiboot sys/arch/hppa/include sys/arch/i386/include sys/arch/luna88k/luna88k sys/arch/m88k/include sys/arch/mips64/include sys/arch/powerpc/include sys/arch/sh/include sys/arch/sparc64/include sys/conf sys/ddb sys/dev/pci sys/dev/pv sys/isofs/udf sys/kern sys/net sys/netinet sys/netinet6 sys/sys usr.bin/nc usr.bin/ssh usr.bin/tmux == distrib =========================================================== 01/06 == http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/distrib miniroot ~ install.sub > Reformat get_responsfile() to fit to 80 columns. (rpe@) ~ install.sub > Use a variable for the sysctl output to shorten the for-loop to > fit to 80 columns. (rpe@) ~ install.sub > Localize PS3 at the top of v6_defroute() to make its assignment > fit to 80 columns. (rpe@) ~ install.sub > Add some line breaks to fit to 80 columns. (rpe@) ~ install.sub > Add some more line breaks to fit to 80 columns. (rpe@) ~ install.sub > Use a variable to make the prompt fit to 80 columns. (rpe@) ~ install.sub > Add even more line breaks to fit to 80 columns. (rpe@) == libexec =========================================================== 02/06 == http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/libexec ld.so ~ library.c ~ loader.c > Provide size-generic ELF_NO_ADDR in <sys/exec_elf.h> and use that instead > of ELFDEFNNAME(NO_ADDR) > ok jca@ (guenther@) == regress =========================================================== 03/06 == http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/regress sys ~ netinet/ipsec/Makefile ~ netinet/ipsec/README ~ netinet/ipsec/ipsec.conf > Encrypt UDP and TCP packets in test. Use a sane transport config. (bluhm@) ~ netinet/ipsec/Makefile > Fix IP address schema to make space for AH tests. (bluhm@) == share ============================================================= 04/06 == http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/share man ~ man5/port-modules.5 > modcargo-crates-1 -> modcargo-gen-crates > modcargo-crates-2 -> modcargo-gen-crates-licenses > discussed with semarie (danj@) == sys =============================================================== 05/06 == http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/sys arch/alpha/include ~ exec.h > In exec_elf.c: expand ELFNAME(), ELFNAME2(), and ELFNAMEEND() except > leaving out the size, so that > ELFNAME2(exec,makecmds) > becomes > exec_elf_makecmds > instead of > exec_elf{32,64}_makecmds > and then delete the ELFNAME2() and ELFNAMEEND() macros. > Move the prototypes for functions local to exec_elf.c to there from > exec_elf.h. > Simplify the SMALL_KERNEL conditionals around the ELF coredump code. > Change exec_conf.c to use the size-generic names and macros > Remove exec_elf{32,64}.c and just build exec_elf.c; delete the > _KERN_DO_ELF and _KERN_DO_ELF64 #defines. > ok jca@, encouragement from deraadt@ and tom@ (guenther@) arch/amd64/include ~ exec.h > In exec_elf.c: expand ELFNAME(), ELFNAME2(), and ELFNAMEEND() except > leaving out the size, so that > ELFNAME2(exec,makecmds) > becomes > exec_elf_makecmds > instead of > exec_elf{32,64}_makecmds > and then delete the ELFNAME2() and ELFNAMEEND() macros. > Move the prototypes for functions local to exec_elf.c to there from > exec_elf.h. > Simplify the SMALL_KERNEL conditionals around the ELF coredump code. > Change exec_conf.c to use the size-generic names and macros > Remove exec_elf{32,64}.c and just build exec_elf.c; delete the > _KERN_DO_ELF and _KERN_DO_ELF64 #defines. > ok jca@, encouragement from deraadt@ and tom@ (guenther@) arch/amd64/stand/efiboot ~ efiboot.c > Retry BS->ExitBootServices() if it fails. > Reported by Ryan, pulse.purge at gmail.com (yasuoka@) arch/arm/include ~ exec.h > In exec_elf.c: expand ELFNAME(), ELFNAME2(), and ELFNAMEEND() except > leaving out the size, so that > ELFNAME2(exec,makecmds) > becomes > exec_elf_makecmds > instead of > exec_elf{32,64}_makecmds > and then delete the ELFNAME2() and ELFNAMEEND() macros. > Move the prototypes for functions local to exec_elf.c to there from > exec_elf.h. > Simplify the SMALL_KERNEL conditionals around the ELF coredump code. > Change exec_conf.c to use the size-generic names and macros > Remove exec_elf{32,64}.c and just build exec_elf.c; delete the > _KERN_DO_ELF and _KERN_DO_ELF64 #defines. > ok jca@, encouragement from deraadt@ and tom@ (guenther@) arch/arm64/arm64 ~ locore.S > Pass the physical address to the end of symbols to the kernel. From > armv7 we inherited the mechanism to manually modify the kernel symbol > table to change the value of esym. We don't use this, but instead use > the virtual address that is passed to the kernel. This change makes us > only work on and hand out physical addresses. Bump the efiboot version > to make this ABI change more visible. (patrick@) arch/arm64/include ~ exec.h > In exec_elf.c: expand ELFNAME(), ELFNAME2(), and ELFNAMEEND() except > leaving out the size, so that > ELFNAME2(exec,makecmds) > becomes > exec_elf_makecmds > instead of > exec_elf{32,64}_makecmds > and then delete the ELFNAME2() and ELFNAMEEND() macros. > Move the prototypes for functions local to exec_elf.c to there from > exec_elf.h. > Simplify the SMALL_KERNEL conditionals around the ELF coredump code. > Change exec_conf.c to use the size-generic names and macros > Remove exec_elf{32,64}.c and just build exec_elf.c; delete the > _KERN_DO_ELF and _KERN_DO_ELF64 #defines. > ok jca@, encouragement from deraadt@ and tom@ (guenther@) arch/arm64/stand/efiboot ~ efiboot.c > Retry BS->ExitBootServices() if it fails, like on amd64. Also we need > to make sure to pass the current mapkey to prove EFI that we know the > current memory map and its constraints. Otherwise EFI can choose to > only partially exit until we pass the correct key. As we already use > the memory map to allocate memory for the kernel, split the previous > function into one simply retrieving the table and another one who uses > the map to allocate memory. At some point it would be nice to actually > pass the table to the kernel since its data is more reliable than the > FDT only. While there, sync a bit of style with the amd64 version. > (patrick@) ~ conf.c ~ exec.c > Pass the physical address to the end of symbols to the kernel. From > armv7 we inherited the mechanism to manually modify the kernel symbol > table to change the value of esym. We don't use this, but instead use > the virtual address that is passed to the kernel. This change makes us > only work on and hand out physical addresses. Bump the efiboot version > to make this ABI change more visible. (patrick@) arch/hppa/include ~ exec.h > In exec_elf.c: expand ELFNAME(), ELFNAME2(), and ELFNAMEEND() except > leaving out the size, so that > ELFNAME2(exec,makecmds) > becomes > exec_elf_makecmds > instead of > exec_elf{32,64}_makecmds > and then delete the ELFNAME2() and ELFNAMEEND() macros. > Move the prototypes for functions local to exec_elf.c to there from > exec_elf.h. > Simplify the SMALL_KERNEL conditionals around the ELF coredump code. > Change exec_conf.c to use the size-generic names and macros > Remove exec_elf{32,64}.c and just build exec_elf.c; delete the > _KERN_DO_ELF and _KERN_DO_ELF64 #defines. > ok jca@, encouragement from deraadt@ and tom@ (guenther@) arch/i386/include ~ exec.h > In exec_elf.c: expand ELFNAME(), ELFNAME2(), and ELFNAMEEND() except > leaving out the size, so that > ELFNAME2(exec,makecmds) > becomes > exec_elf_makecmds > instead of > exec_elf{32,64}_makecmds > and then delete the ELFNAME2() and ELFNAMEEND() macros. > Move the prototypes for functions local to exec_elf.c to there from > exec_elf.h. > Simplify the SMALL_KERNEL conditionals around the ELF coredump code. > Change exec_conf.c to use the size-generic names and macros > Remove exec_elf{32,64}.c and just build exec_elf.c; delete the > _KERN_DO_ELF and _KERN_DO_ELF64 #defines. > ok jca@, encouragement from deraadt@ and tom@ (guenther@) arch/luna88k/luna88k ~ mainbus.c > Now pcexmem(4) and pcexio(4) are attached at cbus(4), we do not need to > include "pcex.h" here. (aoyama@) arch/m88k/include ~ exec.h > In exec_elf.c: expand ELFNAME(), ELFNAME2(), and ELFNAMEEND() except > leaving out the size, so that > ELFNAME2(exec,makecmds) > becomes > exec_elf_makecmds > instead of > exec_elf{32,64}_makecmds > and then delete the ELFNAME2() and ELFNAMEEND() macros. > Move the prototypes for functions local to exec_elf.c to there from > exec_elf.h. > Simplify the SMALL_KERNEL conditionals around the ELF coredump code. > Change exec_conf.c to use the size-generic names and macros > Remove exec_elf{32,64}.c and just build exec_elf.c; delete the > _KERN_DO_ELF and _KERN_DO_ELF64 #defines. > ok jca@, encouragement from deraadt@ and tom@ (guenther@) arch/mips64/include ~ exec.h > In exec_elf.c: expand ELFNAME(), ELFNAME2(), and ELFNAMEEND() except > leaving out the size, so that > ELFNAME2(exec,makecmds) > becomes > exec_elf_makecmds > instead of > exec_elf{32,64}_makecmds > and then delete the ELFNAME2() and ELFNAMEEND() macros. > Move the prototypes for functions local to exec_elf.c to there from > exec_elf.h. > Simplify the SMALL_KERNEL conditionals around the ELF coredump code. > Change exec_conf.c to use the size-generic names and macros > Remove exec_elf{32,64}.c and just build exec_elf.c; delete the > _KERN_DO_ELF and _KERN_DO_ELF64 #defines. > ok jca@, encouragement from deraadt@ and tom@ (guenther@) arch/powerpc/include ~ exec.h > In exec_elf.c: expand ELFNAME(), ELFNAME2(), and ELFNAMEEND() except > leaving out the size, so that > ELFNAME2(exec,makecmds) > becomes > exec_elf_makecmds > instead of > exec_elf{32,64}_makecmds > and then delete the ELFNAME2() and ELFNAMEEND() macros. > Move the prototypes for functions local to exec_elf.c to there from > exec_elf.h. > Simplify the SMALL_KERNEL conditionals around the ELF coredump code. > Change exec_conf.c to use the size-generic names and macros > Remove exec_elf{32,64}.c and just build exec_elf.c; delete the > _KERN_DO_ELF and _KERN_DO_ELF64 #defines. > ok jca@, encouragement from deraadt@ and tom@ (guenther@) arch/sh/include ~ exec.h > In exec_elf.c: expand ELFNAME(), ELFNAME2(), and ELFNAMEEND() except > leaving out the size, so that > ELFNAME2(exec,makecmds) > becomes > exec_elf_makecmds > instead of > exec_elf{32,64}_makecmds > and then delete the ELFNAME2() and ELFNAMEEND() macros. > Move the prototypes for functions local to exec_elf.c to there from > exec_elf.h. > Simplify the SMALL_KERNEL conditionals around the ELF coredump code. > Change exec_conf.c to use the size-generic names and macros > Remove exec_elf{32,64}.c and just build exec_elf.c; delete the > _KERN_DO_ELF and _KERN_DO_ELF64 #defines. > ok jca@, encouragement from deraadt@ and tom@ (guenther@) arch/sparc64/include ~ exec.h > In exec_elf.c: expand ELFNAME(), ELFNAME2(), and ELFNAMEEND() except > leaving out the size, so that > ELFNAME2(exec,makecmds) > becomes > exec_elf_makecmds > instead of > exec_elf{32,64}_makecmds > and then delete the ELFNAME2() and ELFNAMEEND() macros. > Move the prototypes for functions local to exec_elf.c to there from > exec_elf.h. > Simplify the SMALL_KERNEL conditionals around the ELF coredump code. > Change exec_conf.c to use the size-generic names and macros > Remove exec_elf{32,64}.c and just build exec_elf.c; delete the > _KERN_DO_ELF and _KERN_DO_ELF64 #defines. > ok jca@, encouragement from deraadt@ and tom@ (guenther@) conf ~ files > In exec_elf.c: expand ELFNAME(), ELFNAME2(), and ELFNAMEEND() except > leaving out the size, so that > ELFNAME2(exec,makecmds) > becomes > exec_elf_makecmds > instead of > exec_elf{32,64}_makecmds > and then delete the ELFNAME2() and ELFNAMEEND() macros. > Move the prototypes for functions local to exec_elf.c to there from > exec_elf.h. > Simplify the SMALL_KERNEL conditionals around the ELF coredump code. > Change exec_conf.c to use the size-generic names and macros > Remove exec_elf{32,64}.c and just build exec_elf.c; delete the > _KERN_DO_ELF and _KERN_DO_ELF64 #defines. > ok jca@, encouragement from deraadt@ and tom@ (guenther@) ddb ~ db_elf.c ~ db_prof.c > Use ELF_ST_{BIND,TYPE} instead of ELFDEFNNAME(ST_{BIND,TYPE}) > ok jca@ (guenther@) dev/pci ~ mfii.c > fix a mixup of lengths of addresses and lengths in the aen_start sgl > basically use htolem64 to set the address and htolem32 for the > length, not the other way round. lucky this is mostly run on x86. > found by Jon Kloske (dlg@) dev/pv ~ xen.c > Fixup incorrect test when allocating grant table entries > An xnf & xbf attach/detach loop has revealed that sometimes when we're > about to free a grant table entry that is still in use which is a grave > mistake code wise. Turned out we could allocate an entry twice because > of an incorrect test that took flags value into account when making the > decision regarding availability of a given entry. At the same time, > upon releasing the entry we explicitly CAS in 0 into the flags making > this check bogus. > While here be explicit about starting flags by initializing them to 0 > and always panic when the "double free" condition is encountered. > rzalamena@ has lent me his eyes and has double-checked the condition. > (mikeb@) ~ xen.c ~ xenvar.h > Introduce Xen interrupt barriers > intr_barrier(9) is useful to make sure that after an interrupt is > masked, the interrupt handler for the device has finished executing > before proceeding with further device configuration. > However, since Xen interrupt handlers run in the thread context, we > need to make sure that they have finished as well. By scheduling a > xen_barrier_task modelled after (or rather copied ;) ifq_barrier_task > we can ensure that the interrupt handler is no longer running. (mikeb@) ~ if_xnf.c > Switch to Xen interrupt barrier (mikeb@) ~ xbf.c > Abort transactions with non-retriable error when device is stopped (mikeb@) ~ xbf.c > Switch to Xen interrupt barrier and improve state transitions (mikeb@) ~ xbf.c > Cleanup the device removal path > When destroying the ring all transfers should be already gone so there > should be no need to repeat ourselves after xbf_stop has done its work. > Get rid of the yield() that was probably masking some issues that have > been since fixed. (mikeb@) ~ xbf.c > Specify the read/write DMA flag for bounce buffers (mikeb@) ~ xbf.c > Improve error handling for poll timeouts (mikeb@) isofs/udf ~ udf_vfsops.c > Move a pointer deref to after a NULL test. > ok krw@ (jsg@) kern ~ exec_elf.c > Provide size-generic ELF_NO_ADDR in <sys/exec_elf.h> and use that instead > of ELFDEFNNAME(NO_ADDR) > ok jca@ (guenther@) ~ exec_elf.c > elf{32,64}_check_brand() isn't used; delete it > ok jca@ (guenther@) ~ exec_elf.c > Change ELFNAME(read_from)'s buf parameter to be void*, eliminating a cast > from all but one call > ok jca@ (guenther@) ~ exec_elf.c > Move ELF_AUX_ENTRIES from exec_elf.h to exec_elf.c; it's totally internal > and not something we guarantee to userspace > ok jca@ (guenther@) - exec_elf32.c - exec_elf64.c ~ exec_conf.c ~ exec_elf.c > In exec_elf.c: expand ELFNAME(), ELFNAME2(), and ELFNAMEEND() except > leaving out the size, so that > ELFNAME2(exec,makecmds) > becomes > exec_elf_makecmds > instead of > exec_elf{32,64}_makecmds > and then delete the ELFNAME2() and ELFNAMEEND() macros. > Move the prototypes for functions local to exec_elf.c to there from > exec_elf.h. > Simplify the SMALL_KERNEL conditionals around the ELF coredump code. > Change exec_conf.c to use the size-generic names and macros > Remove exec_elf{32,64}.c and just build exec_elf.c; delete the > _KERN_DO_ELF and _KERN_DO_ELF64 #defines. > ok jca@, encouragement from deraadt@ and tom@ (guenther@) ~ subr_pool.c > the splvm() in pool_gc_pages is unecessary now. > all pools set their ipls unconditionally now, so there isn't a need > to second guess them. > pointed out by and ok jmatthew@ (dlg@) ~ kern_exec.c ~ kern_exit.c ~ kern_fork.c > Delete the obsolete fork/exec/exit emulation hooks. > ok mpi@ dlg@ (guenther@) ~ exec_elf.c > Remove support for forcing the ELF interpreter to a specific address, > last used by COMPAT_SYSV which was removed in 2011. > ok millert@ (guenther@) net ~ pf_lb.c > Remove an uneeded NULL test which was after a deref. > ok mpi@ henning@ sashan@ (jsg@) netinet ~ ip_mroute.c > Test for NULL before dereferencing a pointer not after. > ok krw@ (jsg@) ~ ipsec_input.c > Remove the ipsec protocol callbacks which all do the same. Implement > it in ipsec_common_input_cb() instead. The code that was copied > to ah6_input_cb() is now in ip6_ours() so we can call it directly. > OK mpi@ (bluhm@) netinet6 ~ ip6_input.c ~ ip6_var.h > Remove the ipsec protocol callbacks which all do the same. Implement > it in ipsec_common_input_cb() instead. The code that was copied > to ah6_input_cb() is now in ip6_ours() so we can call it directly. > OK mpi@ (bluhm@) sys ~ exec_elf.h > Provide size-generic ELF_NO_ADDR in <sys/exec_elf.h> and use that instead > of ELFDEFNNAME(NO_ADDR) > ok jca@ (guenther@) ~ exec_elf.h > elf{32,64}_check_brand() isn't used; delete it > ok jca@ (guenther@) ~ exec_elf.h > Move ELF_AUX_ENTRIES from exec_elf.h to exec_elf.c; it's totally internal > and not something we guarantee to userspace > ok jca@ (guenther@) ~ exec_elf.h > In exec_elf.c: expand ELFNAME(), ELFNAME2(), and ELFNAMEEND() except > leaving out the size, so that > ELFNAME2(exec,makecmds) > becomes > exec_elf_makecmds > instead of > exec_elf{32,64}_makecmds > and then delete the ELFNAME2() and ELFNAMEEND() macros. > Move the prototypes for functions local to exec_elf.c to there from > exec_elf.h. > Simplify the SMALL_KERNEL conditionals around the ELF coredump code. > Change exec_conf.c to use the size-generic names and macros > Remove exec_elf{32,64}.c and just build exec_elf.c; delete the > _KERN_DO_ELF and _KERN_DO_ELF64 #defines. > ok jca@, encouragement from deraadt@ and tom@ (guenther@) ~ proc.h > Delete the obsolete fork/exec/exit emulation hooks. > ok mpi@ dlg@ (guenther@) ~ exec.h > Remove support for forcing the ELF interpreter to a specific address, > last used by COMPAT_SYSV which was removed in 2011. > ok millert@ (guenther@) == usr.bin =========================================================== 06/06 == http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/usr.bin nc ~ netcat.c > Due to non-blocking sockets, tls_handshake() could wait in a busy > loop. Use an additional poll(2) during the handshake and also > respect the -w timeout option there. > From Shuo Chen; OK beck@ (bluhm@) ~ netcat.c > Avoid double close(2) in netcat. After every call to readwrite() > there is already a close(2), so do not do it in readwrite(). > OK beck@ (bluhm@) ~ netcat.c > Avoid a busy loop in netcat's tls_close(). Reuse the tls_handshake() > wrapper that calls poll(2) and handles the -w timeout. > OK beck@ (bluhm@) ssh ~ ssh-keygen.c > Avoid printf %s NULL. From semarie@, OK djm@ (millert@) tmux ~ tmux.h ~ window.c > Remove event watermarks, don't work well enough to be worth it. (nicm@) ~ grid.c > Tweak how much we expand lines by. (nicm@) ~ screen-write.c ~ tmux.h ~ tty.c > Trying to avoid the occasional newline by saving the last cell on screen > is not actually helping us much and just adds complexity, so don't > bother. (nicm@) ~ tty.c > Log size of output buffer as well. (nicm@) ~ resize.c ~ tty.c > Improve some of the logging on resize. (nicm@) ~ tty.c > Remove unnecessary duplicate check. (nicm@) ~ grid.c ~ screen-redraw.c ~ screen-write.c > Add a helper to store a cell, and some tidying. (nicm@) ~ input.c ~ screen-write.c ~ server-client.c ~ tty.c > Some other tidying bits. (nicm@) ~ tty.c > Fix clear start of line. (nicm@) ~ grid-view.c ~ grid.c ~ input.c ~ screen-write.c ~ screen.c ~ tmux.h ~ tty.c > Collect sequences of printable ASCII characters and process them > together instead of handling them one by one. This is significantly > faster. Sequences are terminated when we reach the end of the line, fill > the internal buffer, or a different character is seen by the input > parser (an escape sequence, or UTF-8). > Rather than writing collected sequences out immediately, hold them until > it is necessary (another screen modification, or we consume all > available data). This means we can discard changes that would have no > effect (for example, lines that would just be scrolled off the screen or > cleared). This reduces the total amount of data we write out to the > terminal - not important for fast terminals, but a big help with slow > (like xterm). (nicm@) ~ input.c ~ screen-write.c ~ tmux.h ~ tty-term.c ~ tty.c > Add support for scroll up escape sequence (CSI S) and use it when > possible instead of sending individual line feeds. (nicm@) ~ window-copy.c > window_copy_pagedown shouldn't reset the mode anymore, instead let the > caller do it so it can free the marks. Problem reported by attila at > stalphonsos dot com. (nicm@) ~ tty.c > Do not adjust region lower by pane offset when scrolling up, it is > already an absolute position. (nicm@) ~ tmux.h ~ tty.c > Add a common function to invalidate all the terminal cached state. (nicm@) ~ tmux.h ~ tty.c > Another helper function to write to terminal and log. (nicm@) =============================================================================== _______________________________________________ odc mailing list [email protected] http://www.squish.net/mailman/listinfo/odc
