OpenBSD src changes summary for 2017-11-19 to 2017-11-26 inclusive ==================================================================
bin/ksh distrib/alpha distrib/amd64 distrib/arm64 distrib/armv7 distrib/hppa distrib/i386 distrib/landisk distrib/loongson distrib/luna88k distrib/macppc distrib/octeon distrib/sgi distrib/socppc distrib/sparc64 distrib/special games/fortune gnu gnu/usr.bin/perl lib/libc lib/libfuse regress/bin regress/sbin regress/sys sbin/dhclient sbin/ipsecctl sbin/isakmpd sbin/pfctl share/man sys/arch/amd64/amd64 sys/arch/amd64/stand/efiboot sys/arch/amd64/stand/libsa sys/arch/armv7/stand/efiboot sys/arch/armv7/sunxi sys/arch/i386/i386 sys/arch/mips64/mips64 sys/arch/octeon/dev sys/arch/octeon/include sys/arch/sparc64/sparc64 sys/dev sys/dev/fdt sys/dev/pv sys/dev/wscons sys/kern sys/net sys/netinet sys/netinet6 sys/sys usr.bin/aucat usr.bin/openssl usr.bin/sndiod usr.bin/ssh usr.bin/vi usr.sbin/kvm_mkdb usr.sbin/smtpd usr.sbin/syslogd == bin =============================================================== 01/11 == http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/bin ksh ~ history.c > Initialize *histbase to NULL to fix a bus error in emacs editing mode > found by anton. To reproduce, run "env EDITOR=emacs MALLOC_OPTIONS=J ksh" > then press "^[_". > ok anton, jca (tb@) ~ emacs.c ~ ksh.1 > Fix some incorrectness related to Emacs editing mode in ksh: > - Keep the order of bindings in sync between the manual and implementation > - Fix wrongly documented bindings in the manual > - Break out commands without a default binding in the manual > ok jmc@ tb@ (anton@) ~ emacs.c > Remove the "version" interactive function in emacs mode. > Not bound by default and not very useful. ok schwarze@ anton@ (jca@) == distrib =========================================================== 02/11 == http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/distrib alpha ~ bsd.rd/list.local > add growfs(8) to ramdisk > Some resizing scenarios can be done from within single user mode, but > resizing the root partition required you to bring your own growfs(8) > binary into the ramdisk environment. This commit adds growfs(8) to the > ramdisks (the ones that don't have space constraints) to simplify such > operations. > OK deraadt@ (job@) amd64 ~ ramdisk_cd/list.local > add growfs(8) to ramdisk > Some resizing scenarios can be done from within single user mode, but > resizing the root partition required you to bring your own growfs(8) > binary into the ramdisk environment. This commit adds growfs(8) to the > ramdisks (the ones that don't have space constraints) to simplify such > operations. > OK deraadt@ (job@) arm64 ~ ramdisk/list > add growfs(8) to ramdisk > Some resizing scenarios can be done from within single user mode, but > resizing the root partition required you to bring your own growfs(8) > binary into the ramdisk environment. This commit adds growfs(8) to the > ramdisks (the ones that don't have space constraints) to simplify such > operations. > OK deraadt@ (job@) armv7 ~ ramdisk/list > add growfs(8) to ramdisk > Some resizing scenarios can be done from within single user mode, but > resizing the root partition required you to bring your own growfs(8) > binary into the ramdisk environment. This commit adds growfs(8) to the > ramdisks (the ones that don't have space constraints) to simplify such > operations. > OK deraadt@ (job@) hppa ~ ramdisk/list.local > add growfs(8) to ramdisk > Some resizing scenarios can be done from within single user mode, but > resizing the root partition required you to bring your own growfs(8) > binary into the ramdisk environment. This commit adds growfs(8) to the > ramdisks (the ones that don't have space constraints) to simplify such > operations. > OK deraadt@ (job@) i386 ~ ramdisk_cd/list.local > add growfs(8) to ramdisk > Some resizing scenarios can be done from within single user mode, but > resizing the root partition required you to bring your own growfs(8) > binary into the ramdisk environment. This commit adds growfs(8) to the > ramdisks (the ones that don't have space constraints) to simplify such > operations. > OK deraadt@ (job@) landisk ~ ramdisk/list > add growfs(8) to ramdisk > Some resizing scenarios can be done from within single user mode, but > resizing the root partition required you to bring your own growfs(8) > binary into the ramdisk environment. This commit adds growfs(8) to the > ramdisks (the ones that don't have space constraints) to simplify such > operations. > OK deraadt@ (job@) loongson ~ ramdisk/list > add growfs(8) to ramdisk > Some resizing scenarios can be done from within single user mode, but > resizing the root partition required you to bring your own growfs(8) > binary into the ramdisk environment. This commit adds growfs(8) to the > ramdisks (the ones that don't have space constraints) to simplify such > operations. > OK deraadt@ (job@) luna88k ~ ramdisk/list > add growfs(8) to ramdisk > Some resizing scenarios can be done from within single user mode, but > resizing the root partition required you to bring your own growfs(8) > binary into the ramdisk environment. This commit adds growfs(8) to the > ramdisks (the ones that don't have space constraints) to simplify such > operations. > OK deraadt@ (job@) macppc ~ ramdisk/list > add growfs(8) to ramdisk > Some resizing scenarios can be done from within single user mode, but > resizing the root partition required you to bring your own growfs(8) > binary into the ramdisk environment. This commit adds growfs(8) to the > ramdisks (the ones that don't have space constraints) to simplify such > operations. > OK deraadt@ (job@) octeon ~ ramdisk/list > add growfs(8) to ramdisk > Some resizing scenarios can be done from within single user mode, but > resizing the root partition required you to bring your own growfs(8) > binary into the ramdisk environment. This commit adds growfs(8) to the > ramdisks (the ones that don't have space constraints) to simplify such > operations. > OK deraadt@ (job@) sgi ~ ramdisk/list > add growfs(8) to ramdisk > Some resizing scenarios can be done from within single user mode, but > resizing the root partition required you to bring your own growfs(8) > binary into the ramdisk environment. This commit adds growfs(8) to the > ramdisks (the ones that don't have space constraints) to simplify such > operations. > OK deraadt@ (job@) socppc ~ ramdisk/list > add growfs(8) to ramdisk > Some resizing scenarios can be done from within single user mode, but > resizing the root partition required you to bring your own growfs(8) > binary into the ramdisk environment. This commit adds growfs(8) to the > ramdisks (the ones that don't have space constraints) to simplify such > operations. > OK deraadt@ (job@) sparc64 ~ ramdisk/list > add growfs(8) to ramdisk > Some resizing scenarios can be done from within single user mode, but > resizing the root partition required you to bring your own growfs(8) > binary into the ramdisk environment. This commit adds growfs(8) to the > ramdisks (the ones that don't have space constraints) to simplify such > operations. > OK deraadt@ (job@) special ~ Makefile + growfs/Makefile > add growfs(8) to ramdisk > Some resizing scenarios can be done from within single user mode, but > resizing the root partition required you to bring your own growfs(8) > binary into the ramdisk environment. This commit adds growfs(8) to the > ramdisks (the ones that don't have space constraints) to simplify such > operations. > OK deraadt@ (job@) == games ============================================================= 03/11 == http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/games fortune ~ datfiles/fortunes2 > than -> then > from scott cheloha (tb@) == gnu =============================================================== 04/11 == http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/gnu gnu ~ llvm/lib/Target/X86/X86RegisterInfo.td > The compiler is generally free to allocate general purpose registers in > whatever > order it chooses. Reasons for choosing one register before another usually > incl > ude compiled instruction size (avoidance of REX prefixes, etc.) or usage > convent > ions, but somehow haven't included security implications in the compiled > bytecod > e. Some bytecode is more useful in polymorphic ROP sequences than others, > so it > seems prudent to try to avoid that bytecode when possible. > This patch moves EBX/RBX towards the end of the allocation preference for > 32 and > 64 bit general purpose registers. Some instructions using RBX/EBX/BX/BL as > a de > stination register end up with a ModR/M byte of C3 or CB, which is often > useful > in ROP gadgets. Because these gadgets often occur in the middle of > functions, th > ey exhibit somewhat higher diversity than some other C3/CB terminated > gadgets. T > his change removes about 3% of total gadgets from the kernel, but about 6% > of un > ique gadgets. > There are other possible changes in this direction. BX/BL are obvious next > targe > ts for avoidance, and MM3/XMM3 may also be useful to try to avoid if > possible. > ok deraadt@ (mortimer@) usr.bin/perl ~ lib/File/Copy.pm ~ lib/File/Copy.t > Support Time::HiRes::utime in File::Copy > Fixes issues with cross-device moves, noticed with autoconf (afresh1@) == lib =============================================================== 05/11 == http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/lib libc ~ stdio/vfprintf.c > Use a simple forward search to find '%' in the format string instead of > using mbrtowc(3). Thus, we now treat the format string as a bytestring, > not as a multibyte character string. > We think that ANSI C made a small error when adding wide characters: > The committees essentially replaced "characters" with "wide characters" > in the existing printf documentation, which was written before the > concept of processing was established. Doing processing on the format > string would break some 8-bit format strings in the wild, and that > isn't something these committees gave themselves license to do. > Based on the "10x printf speedup" commit from android found by tedu: > https://github.com/aosp-mirror/platform_bionic/commit/5305a4d4a723b06494b93 > f2df81733b83a0c46d3 > Thanks to millert and schwarze for digging into the history and > testing *printf behavior on other platforms. > ok deraadt, millert (tb@) ~ arch/arm/sys/Ovfork.S ~ arch/arm/sys/brk.S ~ arch/arm/sys/sbrk.S > Avoid .align 0. Clang's integrated assembler actually honors this > directive > and the resulting byte-alignment triggers unaligned access. > ok patrick@, deraadt@ (kettenis@) ~ arch/aarch64/sys/Ovfork.S ~ arch/aarch64/sys/brk.S ~ arch/aarch64/sys/sbrk.S > Avoid .align 0 here as well. Also fix a .word that should be a .quad. > ok patrick@ (kettenis@) libfuse ~ fuse.c ~ fuse_private.h > Add support for -f option to libfuse. This keeps the FUSE file system > running in the foreground. > ok mpi@ (helg@) == regress =========================================================== 06/11 == http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/regress bin ~ ksh/edit/edit.c > Do not exit 0 if the program was terminated due to receipt of a signal > other > than SIGHUP. (anton@) ~ ksh/edit/emacs.sh ~ ksh/edit/subr.sh > Add tests for emacs editing mode in ksh. While here, improve the output on > test > failure. (anton@) sbin ~ pfctl/Makefile ~ pfctl/if2ip ~ pfctl/pfr.exec > Use the environment variable PFCTL to specify a different executable > for testing. Default is /sbin/pfctl. This makes test driven > development easier. (bluhm@) sys ~ kern/pledge/sockopt/Makefile > Now pledge("inet") allows socket option IPV6_V6ONLY. Adapt test. (bluhm@) ~ net/loop/Makefile > Skip the test and print a warning if pf does not process packets > on additional loopback devices. (bluhm@) ~ net/loop/Makefile > Do not run sysctl and pfctl by != during make clean and make obj. > requested by miod@ (bluhm@) == sbin ============================================================== 07/11 == http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/sbin dhclient ~ dhclient.c > Wnen purging dhclient.leases and when looking for unexpired offers to > use, always recalculate offer expiry time based on the information in > the original offer. (krw@) ~ dhclient.c > Fix use of lease_expiry() in set_lease_times(). lease_expiry() returns > wall clock time, not length of lease time. (krw@) ~ dhclient.c ~ dhcpd.h > Remove 'renewal' field from struct client_lease. Add lease_renewal() to > calculate the value when required for a particular lease. (krw@) ~ dhclient.c > Move rebind time calculation to a function lease_rebind(), just like > lease_expiry() and lease_renewal(). Simplifies logic and upcoming > changes. (krw@) ipsecctl ~ ipsecctl.8 ~ ipsecctl.c ~ ipsecctl.h > Support collapsing flow outputs. > Makes it easier to check live status of complex setups. > ok hshoexer@ (mpi@) ~ ipsec.conf.5 > in isakmpd(8), provide a hint: from scott cheloha > also some minor tweaks while here... (jmc@) isakmpd ~ isakmpd.8 > in isakmpd(8), provide a hint: from scott cheloha > also some minor tweaks while here... (jmc@) pfctl ~ pfctl_optimize.c > - pfctl rule optimizer: anchor name vs. anchor path mix up > OK bluhm@ (sashan@) ~ pfctl_parser.h ~ pfctl_optimize.c > - patching use-after-free and innocent memory leak in pfctl_optimzie.c > OK bluhm@ (sashan@) ~ pfctl.c ~ parse.y > - pfctl fails to handle nested 'load anchor' properly > [ + yet another 'anchor name vs. path mix up in load anchor (parse.y) ] > OK bluhm@ (sashan@) == share ============================================================= 08/11 == http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/share man ~ man5/port-modules.5 > Delete mentions of the gettext module, which has been obsoleted and > removed. (naddy@) ~ man5/bsd.port.mk.5 > document minor changes (espie@) ~ man4/umb.4 > Add fibocom L831-EAU to umb man > Confirmed on Thinkpad X270 (job@) ~ man9/timeout.9 > add timeout_barrier, which is like intr_barrier and taskq_barrier. > if you're trying to free something that a timeout is using, you > have to wait for that timeout to finish running before doing the > free. timeout_del can stop a timeout from running in the future, > but it doesn't know if a timeout has finished being scheduled and > is now running. > previously you could know that timeouts are not running by simply > masking softclock interrupts on the cpu running the kernel. however, > code is now running outside the kernel lock, and timeouts can run > in a thread instead of softclock. > timeout_barrier solves the first problem by taking the kernel lock > and then masking softclock interrupts. that is enough to ensure > that any further timeout processing is waiting for those resources > to run again. > the second problem is solved by having timeout_barrier insert work > into the thread. when that work runs, that means all previous work > running in that thread has completed. > fixes and ok visa@, who thinks this will be useful for his work > too. (dlg@) == sys =============================================================== 09/11 == http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/sys arch/amd64/amd64 - lock_machdep.c > Remove lock_machdep.c from amd64, i386, mips64 and sparc64. > The architectures have been using the MI mplock for a while. > OK deraadt@, kettenis@ (visa@) arch/amd64/stand/efiboot ~ Makefile.common ~ conf.c ~ efiboot.c ~ efiboot.h ~ eficall.h + efipxe.c + efipxe.h > Implement network boot support in efiboot(8). This changes efiboot(8) > to recognize if it has been booted via PXE. The new TFTP file system > layer will then use the matching PXE base code protocol handle to load > the files. Since this uses the PXE base code protocol for abstraction > instead of the raw Simple Network protocol this will at this point not > work on u-boot based machines as needed on ARM. > Feedback and ok tom@ > Also tested by afresh1@ (patrick@) arch/amd64/stand/libsa ~ dev_i386.c > Implement network boot support in efiboot(8). This changes efiboot(8) > to recognize if it has been booted via PXE. The new TFTP file system > layer will then use the matching PXE base code protocol handle to load > the files. Since this uses the PXE base code protocol for abstraction > instead of the raw Simple Network protocol this will at this point not > work on u-boot based machines as needed on ARM. > Feedback and ok tom@ > Also tested by afresh1@ (patrick@) arch/armv7/stand/efiboot ~ Makefile > Add __aeabi_ldivmod.S. Needed for clang. > ok deraadt@, patrick@ (kettenis@) arch/armv7/sunxi ~ sxie.c > rework transmit to get rid of ifq_deq_begin, and to improve speed. > i had a diff that did a small change to replace > ifq_deq_begin/commit/rollback with ifq_dequeue, and Eduard Nicodei > tweaked it a bit with Artturi Alm to use the fifo registers properly > and bump the ifq len. > the latter changes improve performance significantly. > "if you think that diff is correct, commit it" kettenis@ (dlg@) arch/i386/i386 - lock_machdep.c > Remove lock_machdep.c from amd64, i386, mips64 and sparc64. > The architectures have been using the MI mplock for a while. > OK deraadt@, kettenis@ (visa@) arch/mips64/mips64 - lock_machdep.c > Remove lock_machdep.c from amd64, i386, mips64 and sparc64. > The architectures have been using the MI mplock for a while. > OK deraadt@, kettenis@ (visa@) arch/octeon/dev ~ cn30xxgmx.c ~ cn30xxsmi.c ~ octrtc.c > Fix the product code of the Unifi Security Gateway. > Prompted by Justin Hibbits (visa@) ~ octrtc.c > Add the board ID of the Unifi Security Gateway PRO-4. > Not tested with the hardware. (visa@) ~ if_cnmac.c > Initialize Rx subsystems before enabling the processing of incoming > packets. Otherwise, a skosh of traffic may be handled using hardware > default settings. One of the consequences is that packets can end up > into a wrong POW group, causing a panic in cnmac_intr(). > Panic reported by and testing help from Janne Johansson (visa@) ~ if_cnmac.c > On wqe error, show also word2 and word3. Those might help in debugging. > (visa@) arch/octeon/include ~ octeonvar.h > Fix the product code of the Unifi Security Gateway. > Prompted by Justin Hibbits (visa@) ~ octeonvar.h > Add the board ID of the Unifi Security Gateway PRO-4. > Not tested with the hardware. (visa@) arch/sparc64/sparc64 - lock_machdep.c > Remove lock_machdep.c from amd64, i386, mips64 and sparc64. > The architectures have been using the MI mplock for a while. > OK deraadt@, kettenis@ (visa@) dev ~ rnd.c > Remove interlocks between producers and consumers of randomness data > A lot of randomness event producers are executed in the interrupt > context increasing the time spent in the interrupt handler resulting > in extra costs when adding randomness data to the pool. However, in > practice randomness event producers require interlocking between each > other, but not with with consumers due to the opportunistic nature of > event consumers. > To be able to take advantage of this idea, the ring buffer indexing > is now done with two free running producer and consumer counters modulo > power of 2 size of the ring buffer. > With input from and OK visa, tb, jasper (mikeb@) ~ audio.c > No need to grab the audio lock to call audio_canstart() as it checks > whether the device is started before using structures shared with the > interrupt handler. From Michael W. Bombardieri, tested by me. (ratchov@) ~ rnd.c > Don't mention XOR as a mix-in function since addition is done since 1.180 > (mikeb@) dev/fdt ~ sxiccmu.c ~ sxiccmu_clocks.h > Implement support for the "next-generation" clock bindings for the > Allwinner A10/A20. (kettenis@) ~ sxiccmu_clocks.h > Add Allwinner A10 EMAC clock. > From Artturi Alm. (kettenis@) dev/pv ~ xen.c > Xen interrupt task barrier is just a taskq_barrier so call it > instead of rolling its own now that it's been made available. > OK dlg (mikeb@) dev/wscons ~ wsmouseinput.h ~ wsmouse.c ~ wstpad.c > 1. Prepare a consistent treatment of edge areas. 2. Add mechanisms > that identify and mask touches resting in the bottom area. (bru@) ~ wstpad.c > Add various improvements to the default configuration (better default > sizes of edge areas, vertical edge areas as default, and a check for > the WSMOUSE_TYPE that may detect clickpads where software buttons > should be placed at the top edge). (bru@) kern ~ uipc_socket.c ~ uipc_socket2.c > We want `sb_flags' to be protected by the socket lock rather than the > KERNEL_LOCK(), so change asserts accordingly. > This is now possible since sblock()/sbunlock() are always called with > the socket lock held. > ok bluhm@, visa@ (mpi@) ~ uipc_domain.c ~ uipc_socket.c > Constify protocol tables and remove an assert now that ip_deliver() is > mp-safe. > ok bluhm@, visa@ (mpi@) ~ kern_timeout.c > add timeout_barrier, which is like intr_barrier and taskq_barrier. > if you're trying to free something that a timeout is using, you > have to wait for that timeout to finish running before doing the > free. timeout_del can stop a timeout from running in the future, > but it doesn't know if a timeout has finished being scheduled and > is now running. > previously you could know that timeouts are not running by simply > masking softclock interrupts on the cpu running the kernel. however, > code is now running outside the kernel lock, and timeouts can run > in a thread instead of softclock. > timeout_barrier solves the first problem by taking the kernel lock > and then masking softclock interrupts. that is enough to ensure > that any further timeout processing is waiting for those resources > to run again. > the second problem is solved by having timeout_barrier insert work > into the thread. when that work runs, that means all previous work > running in that thread has completed. > fixes and ok visa@, who thinks this will be useful for his work > too. (dlg@) net ~ if.c > Do not fail if an interface is DOWN when calling ifpromisc(). > As soon as the interface will be brough UP, its device driver will > recognize it has the IFF_PROMISC flag and will configure its filters > accordingly. > ok visa@ (mpi@) ~ if_bridge.c ~ if_switch.c > Remove duplicated code working around the fact that ifpromisc() required > a DOWN interface. > ok visa@ (mpi@) ~ if_etherip.c ~ if_gif.c ~ if_pfsync.c ~ if_vxlan.c ~ pf.c ~ pipex.c > Sprinkle some NET_ASSERT_LOCKED(), const and co to prepare running > pr_input handlers without KERNEL_LOCK(). > ok visa@ (mpi@) ~ pfkeyv2.c ~ pfkeyv2.h > Flush flows using the radix-tree instead of a global list. > This will allows us to get rid of the list. > ok visa@ (mpi@) ~ if_etherip.h > Remove #if'0ed decls > Stop pretending that we will migrate the content of this file to > if_etherip.h. Those declarations are needed by userland, and it's > easier to keep them in netinet/ip_ether.h. ok visa@ (jca@) ~ pf.c > It does not make sense to call pcb lookup from pf during packet > forwarding. It should never match and would cause MP locking > problems. While there remove an useless ifp parameter from > ip_output_ipsec_send(). > from markus@; OK visa@ sashan@ (bluhm@) netinet ~ igmp.c ~ in.h ~ ip_carp.c ~ ip_ether.c ~ ip_gre.c ~ ip_input.c ~ ipsec_input.c ~ raw_ip.c ~ tcp_input.c ~ tcp_usrreq.c ~ udp_usrreq.c > Sprinkle some NET_ASSERT_LOCKED(), const and co to prepare running > pr_input handlers without KERNEL_LOCK(). > ok visa@ (mpi@) ~ ip_spd.c > Flush flows using the radix-tree instead of a global list. > This will allows us to get rid of the list. > ok visa@ (mpi@) ~ ip_ipsp.h > Keep kernel defines under #ifdef _KERNEL. > ok bluhm@ (mpi@) ~ ip_carp.c > Move the addrhook disestablish from carpdetach() to carp_clone_destroy() > to make it symmetric to the addrhook establish which is being done in > carp_clone_create(). This fixes the issue that carp does not recognize > address changes on the carp after an interface has detached, which could > cause issues like carp not recovering or even panics. Unfortunately > there are more bugs lurking in carp. > ok bluhm@ (patrick@) ~ ip_output.c > It does not make sense to call pcb lookup from pf during packet > forwarding. It should never match and would cause MP locking > problems. While there remove an useless ifp parameter from > ip_output_ipsec_send(). > from markus@; OK visa@ sashan@ (bluhm@) ~ ip_carp.h ~ ip_carp.c > Replace non mp-safe carp_iamatch6() with mp-safe carp_iamatch(). > They have the same functionnality since friehm@ cleaned up > balancing code. > ok florian@, visa@, patrick@, bluhm@, jmatthew@ (mpi@) ~ in_proto.c ~ ip_input.c > Constify protocol tables and remove an assert now that ip_deliver() is > mp-safe. > ok bluhm@, visa@ (mpi@) netinet6 ~ in6.h ~ ip6_input.c ~ raw_ip6.c > Sprinkle some NET_ASSERT_LOCKED(), const and co to prepare running > pr_input handlers without KERNEL_LOCK(). > ok visa@ (mpi@) ~ ip6_forward.c > Do not assume if_get(9) returns a non NULL ifp when using a route > interface index. > This assumption is true for the moment iff the route lookup *and* the > if_get() are done under KERNEL_LOCK(). This is not the case here. > Found the hardway by Hrvoje Popovski. > ok florian@, visa@, bluhm@ (mpi@) ~ in6.c ~ nd6_nbr.c > Replace non mp-safe carp_iamatch6() with mp-safe carp_iamatch(). > They have the same functionnality since friehm@ cleaned up > balancing code. > ok florian@, visa@, patrick@, bluhm@, jmatthew@ (mpi@) ~ in6_proto.c ~ ip6_input.c ~ ip6protosw.h > Constify protocol tables and remove an assert now that ip_deliver() is > mp-safe. > ok bluhm@, visa@ (mpi@) sys ~ socketvar.h > We want `sb_flags' to be protected by the socket lock rather than the > KERNEL_LOCK(), so change asserts accordingly. > This is now possible since sblock()/sbunlock() are always called with > the socket lock held. > ok bluhm@, visa@ (mpi@) ~ domain.h ~ protosw.h ~ socketvar.h > Constify protocol tables and remove an assert now that ip_deliver() is > mp-safe. > ok bluhm@, visa@ (mpi@) ~ timeout.h > add timeout_barrier, which is like intr_barrier and taskq_barrier. > if you're trying to free something that a timeout is using, you > have to wait for that timeout to finish running before doing the > free. timeout_del can stop a timeout from running in the future, > but it doesn't know if a timeout has finished being scheduled and > is now running. > previously you could know that timeouts are not running by simply > masking softclock interrupts on the cpu running the kernel. however, > code is now running outside the kernel lock, and timeouts can run > in a thread instead of softclock. > timeout_barrier solves the first problem by taking the kernel lock > and then masking softclock interrupts. that is enough to ensure > that any further timeout processing is waiting for those resources > to run again. > the second problem is solved by having timeout_barrier insert work > into the thread. when that work runs, that means all previous work > running in that thread has completed. > fixes and ok visa@, who thinks this will be useful for his work > too. (dlg@) == usr.bin =========================================================== 10/11 == http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/usr.bin aucat ~ afile.c > Remove useless variable assignments in .au header parsing code. From > Michael W. Bombardieri. Thanks. (ratchov@) openssl ~ apps_posix.c > Use clock_gettime and getrusage to compute real and user time. > Better handling of clock jumps, from Scott Cheloa. (jca@) sndiod ~ fdpass.c > Free memory in the error code-path, when we run out of descriptors > during initialization. From Michael W. Bombardieri, thanks. (ratchov@) ~ dev.c > Fix slot leak occuring when the device mode doesn't match > the client mode. Found by landry@. (ratchov@) ssh ~ clientloop.c > Remove get_current_time() and replace with calls to monotime_double() > which uses CLOCK_MONOTONIC and works over clock steps. "I like" markus@ > (dtucker@) ~ misc.c ~ misc.h ~ packet.c ~ ssh-keyscan.c ~ sshconnect.c > Add monotime_ts and monotime_tv that return monotonic timespec and > timeval respectively. Replace calls to gettimeofday() in packet timing > with monotime_tv so that the callers will work over a clock step. > Should prevent integer overflow during clock steps reported by wangle6 > at huawei.com. "I like" markus@ (dtucker@) vi ~ common/delete.c > Fix segfault which could be triggered by deleting a backwards sentence if > cursor's current line was blank: > echo "\nfoo" > a && vi a > d( > Same fix applied by rin@NetBSD, via nvi2 project. > OK tom@ martijn@ tb@ millert@ (mestre@) == usr.sbin ========================================================== 11/11 == http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/usr.sbin kvm_mkdb ~ kvm_mkdb.c > The call to setegid(2) was replaced with setresgid(2) a while ago. > Adjust error message accordingly. (tb@) smtpd ~ ca.c ~ lka.c ~ mda.c ~ mta.c ~ queue.c ~ smtp.c ~ smtpd.c > no need to check the sending process in imsg handlers when there is no > ambiguity: just use a single switch. > ok gilles@ sunil@ (eric@) ~ control.c > simplify imsg handler. > ok sunil@ gilles@ (eric@) syslogd ~ syslogd.c > Revert my change to ignore EIO errors when writing to log files. > Syslogd continued logging messages to a file that had an EIO error. > This could slow down the whole system. File system errors may cause > huge delays at every access. This prevented debugging the issue. > Now syslogd will log a warning and shut down logging to this file > until restart or SIGHUP. > OK deraadt@ espie@ millert@ (bluhm@) =============================================================================== _______________________________________________ owc mailing list [email protected] http://www.squish.net/mailman/listinfo/owc
