OpenBSD src changes summary for 2017-05-29 ==========================================
bin/ksh distrib/sets etc/Makefile etc/rc etc/rc.conf etc/rc.d/slaacd gnu lib/libc lib/libcrypto lib/libpthread lib/librthread libexec/getty regress/sbin regress/sys share/man share/misc sys/arch/alpha/alpha sys/arch/alpha/include sys/arch/amd64/amd64 sys/arch/amd64/include sys/arch/hppa/hppa sys/arch/i386/i386 sys/arch/i386/include sys/arch/i386/isa sys/arch/luna88k/luna88k sys/arch/m88k/m88k sys/arch/mips64/mips64 sys/arch/powerpc/include sys/arch/powerpc/powerpc sys/arch/sparc64/include sys/arch/sparc64/sparc64 sys/conf sys/ddb sys/dev/ata sys/dev/ic sys/msdosfs sys/net sys/netinet sys/netinet6 sys/scsi sys/sys sys/ufs/ffs usr.bin/compress usr.bin/cvs usr.bin/kdump usr.bin/mail usr.bin/tmux usr.sbin usr.sbin/bgpctl usr.sbin/bgpd usr.sbin/pkg_add usr.sbin/slaacd usr.sbin/smtpd usr.sbin/snmpd usr.sbin/switchd usr.sbin/vmd == bin =============================================================== 01/11 == http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/bin ksh ~ alloc.c ~ history.c > Change the mmap(2)-based binary history file with lots of magic and a > tendency for corruption to a simpler plaintext version. > To convert your current ksh history to plaintext, issue > fc -ln 1 | sed 's/^ //' > ~/ksh_hist.txt > before upgrading and use ksh_hist.txt as HISTFILE after the upgrade. > Original patch by marco in 2011. Ported to current during g2k16 by me. > Testing, bugfixes and improvements in joint work with natano. > Additional testing by anton and mestre. Includes some tweaks by anton. > Committing now to shake out remaining bugs before 6.2 is cut. > ok deraadt, mestre, anton, sthen (tb@) == distrib =========================================================== 02/11 == http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/distrib sets ~ lists/base/mi ~ lists/man/mi > sync (deraadt@) ~ lists/comp/mi > sync (deraadt@) ~ lists/base/mi ~ lists/comp/mi ~ lists/man/mi > sync (deraadt@) == etc =============================================================== 03/11 == http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/etc Makefile ~ Makefile > rc.d(8) for slaacd > OK phessler, deraadt (florian@) rc ~ rc > Randomize link-order of libcrypto as we do with libc. This library > has many small functions without significant local storage, therefore > less tail protection from -fstack-protector-strong to prevent their use > as ROP gadgets. It is used in security contexts. Also many functions > dribble pointers onto the stack, allowing discovery of gadgets via the > fixed relative addresses, so let's randomly bias those. > ok tedu jsing > The rc script will soon need a strategy for skipping this step on > machines with poor IO performance. Or maybe do it less often? However, > I don't see many more libraries we'll do this with, these are the two > most important ones. (deraadt@) ~ rc > rc.d(8) for slaacd > OK phessler, deraadt (florian@) rc.conf ~ rc.conf > rc.d(8) for slaacd > OK phessler, deraadt (florian@) rc.d/slaacd + rc.d/slaacd > rc.d(8) for slaacd > OK phessler, deraadt (florian@) == gnu =============================================================== 04/11 == http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/gnu gnu ~ llvm/lib/MC/MCAsmInfoELF.cpp > openbsd does not use nonexec stack segment header hints. > in fact, false is a much better default for UsesNonexecutableStackSection. > platforms that require it can reenable, instead, saving the rest of us an > unnecessary program header (causes trouble for some special binaries). > ok kettenis (tedu@) == lib =============================================================== 05/11 == http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/lib libc - gen/sigsetops.3 ~ compat-43/sigblock.3 ~ compat-43/sigsetmask.3 ~ compat-43/sigvec.3 ~ gen/Makefile.inc ~ gen/posix_spawnattr_getpgroup.3 ~ sys/sigaction.2 ~ sys/sigpending.2 ~ sys/sigprocmask.2 ~ sys/sigsuspend.2 + gen/sigaddset.3 > It is distasteful to have manual pages which don't refer to real > function calls, but instead a "class" of functions like "sigsetops". > Rename to sigaddset", and while at it improve documentation in > sigprocmask(2) > to point to it. > ok tedu (deraadt@) ~ compat-43/sigblock.3 ~ compat-43/sigsetmask.3 ~ compat-43/sigvec.3 > sort SEE ALSO; (jmc@) ~ sys/sigaction.2 > sort SEE ALSO; (jmc@) libcrypto ~ Makefile > Randomize link-order of libcrypto as we do with libc. This library > has many small functions without significant local storage, therefore > less tail protection from -fstack-protector-strong to prevent their use > as ROP gadgets. It is used in security contexts. Also many functions > dribble pointers onto the stack, allowing discovery of gadgets via the > fixed relative addresses, so let's randomly bias those. > ok tedu jsing > The rc script will soon need a strategy for skipping this step on > machines with poor IO performance. Or maybe do it less often? However, > I don't see many more libraries we'll do this with, these are the two > most important ones. (deraadt@) libpthread ~ man/pthread_sigmask.3 > It is distasteful to have manual pages which don't refer to real > function calls, but instead a "class" of functions like "sigsetops". > Rename to sigaddset", and while at it improve documentation in > sigprocmask(2) > to point to it. > ok tedu (deraadt@) librthread ~ rthread_mutex.c ~ synch.h > SPINLOCK_SPIN_HOOK is no more, define our own set of macros. > Prodded by kettenis@ and tedu@ (mpi@) ~ Makefile > Enable futex-based mutex and condvar. > ok everybody (mpi@) == libexec =========================================================== 06/11 == http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/libexec getty ~ main.c > do not need dev[] wasting bss space (deraadt@) == regress =========================================================== 07/11 == http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/regress sbin ~ iked/Makefile + iked/Makefile.inc > Added files: > regress/sbin/iked/parser: Makefile common.c test_parser_fuzz.c > tests.c > regress/sbin/iked/test_helper: Makefile fuzz.c test_helper.c > test_helper.h > Log message: > fuzz the iked payload parser using the openssh unit-test framework > from hshoexer (markus@) sys ~ Makefile > Regress test for sparse files & mmap with different FSs > This test creates a file with a hole in the middle and then checks that > when reading or mmaping the whole file, the data is correct. > This catches the bug introduced by the > "Implement VFS read clustering for MSDOSFS" commit that hat to be > reverted. > For now, we run the test with FAT16, FAT32, FFS > With much advice from bluhm@ (sf@) + fileops/Makefile + fileops/Makefile.inc + fileops/fileops.c + fileops/ffs/Makefile + fileops/msdos16/Makefile + fileops/msdos32/Makefile > Regress test for sparse files & mmap with different FSs > This test creates a file with a hole in the middle and then checks that > when reading or mmaping the whole file, the data is correct. > This catches the bug introduced by the > "Implement VFS read clustering for MSDOSFS" commit that hat to be > reverted. > For now, we run the test with FAT16, FAT32, FFS > With much advice from bluhm@ (sf@) ~ Makefile > Re-add line continuation \ that went missing in the previous commit (sf@) ~ fileops/Makefile.inc ~ fileops/fileops.c > Minor regress test cleanup. > OK sf@ (bluhm@) == share ============================================================= 08/11 == http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/share man - man7/mailaddr.7 ~ man7/Makefile ~ man7/hostname.7 ~ man7/intro.7 > remove mailaddr.7 and its many lies. > ok gilles jmc mpi (tedu@) misc ~ airport > mlarkin and airport.7 say "must have been there", not "flown there". > Add XFW, Hamburg-Finkenwerder (the Airbus factory) > ok mlarkin fcambus (henning@) == sys =============================================================== 09/11 == http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/sys arch/alpha/alpha ~ lock_machdep.c ~ machdep.c ~ mutex.c > Kill SPINLOCK_SPIN_HOOK, use CPU_BUSY_CYCLE() instead. > ok visa@, kettenis@ (mpi@) arch/alpha/include ~ cpu.h ~ lock.h > Kill SPINLOCK_SPIN_HOOK, use CPU_BUSY_CYCLE() instead. > ok visa@, kettenis@ (mpi@) arch/amd64/amd64 ~ vmm.c > vmm(4): Enable support for AMD-V (SVM) CPUs. > Tested on the following CPUs: > AMD C-60 APU > AMD GX-412TC SOC (PCEngines APU2C4) > AMD Opteron(tm) Processor 6128 > ... and various others via bochs/simulators, on a variety of different > guest VM types. Also verified no regressions on my x230 Intel machine > since this diff slightly changes CPUID behaviour WRT cache information. > ok deraadt@ (mlarkin@) ~ db_trace.c > Pass the symbol instead of its name when looking for CTF infos. > ok jasper@ (mpi@) ~ hibernate_machdep.c > Add hibernate support for nvme(4). This creates a separate IO queue that > is > only active during hibernation, preallocating the the submission and > completion > queues during attach as they need to be page-aligned. > tested on an x270 that successfully hibernates now. > ok dlg@ (jmatthew@) ~ fpu.c ~ lapic.c ~ lock_machdep.c ~ pmap.c > Kill SPINLOCK_SPIN_HOOK, use CPU_BUSY_CYCLE() instead. > ok visa@, kettenis@ (mpi@) arch/amd64/include ~ lock.h > Kill SPINLOCK_SPIN_HOOK, use CPU_BUSY_CYCLE() instead. > ok visa@, kettenis@ (mpi@) arch/hppa/hppa ~ lock_machdep.c > Kill SPINLOCK_SPIN_HOOK, use CPU_BUSY_CYCLE() instead. > ok visa@, kettenis@ (mpi@) arch/i386/i386 ~ db_trace.c > Pass the symbol instead of its name when looking for CTF infos. > ok jasper@ (mpi@) ~ lock_machdep.c ~ pmap.c > Kill SPINLOCK_SPIN_HOOK, use CPU_BUSY_CYCLE() instead. > ok visa@, kettenis@ (mpi@) arch/i386/include ~ lock.h > Kill SPINLOCK_SPIN_HOOK, use CPU_BUSY_CYCLE() instead. > ok visa@, kettenis@ (mpi@) arch/i386/isa ~ npx.c > Kill SPINLOCK_SPIN_HOOK, use CPU_BUSY_CYCLE() instead. > ok visa@, kettenis@ (mpi@) arch/luna88k/luna88k ~ machdep.c > Kill SPINLOCK_SPIN_HOOK, use CPU_BUSY_CYCLE() instead. > ok visa@, kettenis@ (mpi@) arch/m88k/m88k ~ subr.S > copyin32 implementation from miod@ > ok kettenis@ (mpi@) ~ m8820x_machdep.c ~ m88k_machdep.c ~ mplock.c > Kill SPINLOCK_SPIN_HOOK, use CPU_BUSY_CYCLE() instead. > ok visa@, kettenis@ (mpi@) arch/mips64/mips64 ~ mips64_machdep.c > Invalidate OCTEON icache after TLB ASID wraparound, otherwise userspace > might execute stale instructions. The cache is virtually tagged and does > not seem to pick up TLB alterations automatically. (visa@) ~ pmap.c > Reduce code duplication. The local-CPU-only case is now handled > without a lock in smp_rendezvous_cpus(). (visa@) ~ lock_machdep.c > Kill SPINLOCK_SPIN_HOOK, use CPU_BUSY_CYCLE() instead. > ok visa@, kettenis@ (mpi@) arch/powerpc/include ~ lock.h > Kill SPINLOCK_SPIN_HOOK, use CPU_BUSY_CYCLE() instead. > ok visa@, kettenis@ (mpi@) arch/powerpc/powerpc ~ lock_machdep.c ~ mutex.c > Kill SPINLOCK_SPIN_HOOK, use CPU_BUSY_CYCLE() instead. > ok visa@, kettenis@ (mpi@) arch/sparc64/include ~ cpu.h ~ lock.h > Kill SPINLOCK_SPIN_HOOK, use CPU_BUSY_CYCLE() instead. > ok visa@, kettenis@ (mpi@) arch/sparc64/sparc64 ~ lock_machdep.c > Kill SPINLOCK_SPIN_HOOK, use CPU_BUSY_CYCLE() instead. > ok visa@, kettenis@ (mpi@) conf ~ files > PFKEY version 2 is the only pfkey version supported. No need for extra > abstraction. First step of making PF_KEY a bit more like PF_ROUTE. > OK mpi@ (claudio@) ~ files > Add hibernate support for nvme(4). This creates a separate IO queue that > is > only active during hibernation, preallocating the the submission and > completion > queues during attach as they need to be page-aligned. > tested on an x270 that successfully hibernates now. > ok dlg@ (jmatthew@) ddb ~ db_ctf.c ~ db_extern.h ~ db_sym.h > Pass the symbol instead of its name when looking for CTF infos. > ok jasper@ (mpi@) dev/ata ~ wd.c > Add an ioctl to tell storage devices to flush their internal caches > Currently implemented for wd and sd. > Initially ported from netbsd by pedro@ > ok deraadt@ (sf@) dev/ic ~ nvmevar.h ~ nvme.c > Add hibernate support for nvme(4). This creates a separate IO queue that > is > only active during hibernation, preallocating the the submission and > completion > queues during attach as they need to be page-aligned. > tested on an x270 that successfully hibernates now. > ok dlg@ (jmatthew@) msdosfs ~ denode.h ~ msdosfs_vnops.c > Implement VFS read clustering for MSDOSFS > This is the reverted commit by mpi@ from msdosfs_vnops.c 1.105 plus some > additional tweaks to fix some cluster/block number confusion that lead > to regressions when seeking past the end of a file. > The original commit message was: > The logic used in msdosfs_bmap() to loop calling pcbmap() comes from > FreeBSD and is not really efficient but it is good enough since it is > only called when generating I/O. > With this diff I get a 100% improvement when reading big files from a > crappy USB stick. > With this and bread_cluster(9) modified to not re-fetch B_CACHED buffers, > reading large contiguous files with chunk sizes of MAXPHYS is almost as > fast as physio(9) on the same device. > For a 'real world' example, when copying music files from a USB stick I > see a speed jump from 15MB/s on -current to 24Mb/s with this diff. > While here rename some 'lbn' variables into 'cn' to better reflect what > we're dealing with. > Tested by Mathieu, with support from deraadt@ > ok mpi@ (sf@) ~ msdosfs_vfsops.c > msdosfs & ffs: flush cache if updating mount from r/w to r/o > ok deraadt@ (sf@) net ~ if.c > Do not try to grab the NET_LOCK() while holding an ifp reference. > Fix a deadlock with a thread trying to detach the corresponding interface. > ok sashan@, bluhm@ (mpi@) ~ if_vlan.c > Pass SIOCGIFMEDIA to vlan's parent interface. > ok krw@, dlg@ (mpi@) - pfkey.c ~ pfkeyv2.c ~ pfkeyv2.h > PFKEY version 2 is the only pfkey version supported. No need for extra > abstraction. First step of making PF_KEY a bit more like PF_ROUTE. > OK mpi@ (claudio@) ~ pf.c > export_pflow() is no longer grabbing the NET_LOCK(), so no need to > release it beforehand. > ok henning@, benno@ (mpi@) ~ pfkeyv2.c ~ pfkeyv2.h > Kill struct pfkey_version and move struct pfkeyv2_socket & dump_state > to pfkeyv2.c. These structs are nowhere else needed. > OK gcc (claudio@) ~ pfkeyv2.c > Replace handrolled list with LIST_* macros. OK mpi@ (claudio@) netinet ~ in.c ~ in_var.h ~ ip_input.c ~ ip_output.c > Per-interface list of addresses, both multicast and unicast, are > currently protected by the NET_LOCK(). > They are not accessed in the hot path, so protecting them with a > mutex could be an option. However since we're now going to run > with a NET_LOCK() for some time, assert that it is held. > IPsec is not yet ready to run without KERNEL_LOCK(), so assert it > is held, even in the forwarding path. > Tested by sthen@, ok visa@, claudio@, bluhm@ (mpi@) netinet6 ~ ip6_input.c > Per-interface list of addresses, both multicast and unicast, are > currently protected by the NET_LOCK(). > They are not accessed in the hot path, so protecting them with a > mutex could be an option. However since we're now going to run > with a NET_LOCK() for some time, assert that it is held. > IPsec is not yet ready to run without KERNEL_LOCK(), so assert it > is held, even in the forwarding path. > Tested by sthen@, ok visa@, claudio@, bluhm@ (mpi@) ~ in6.c > Allow passing in IN6_IFF_AUTOCONF from userland. Needed by slaacd(8) > OK naddy (florian@) scsi ~ cd.c ~ scsi_base.c ~ scsiconf.h ~ sd.c ~ st.c > To prevent anyone else from stumbling on this (now) archaic bit of > history, nuke all mentions of XS_NO_CCB and the #define. > 2006 - 2017. R.I.P. > ok kettenis@ inferred ok dlg@ (krw@) ~ sd.c > Add an ioctl to tell storage devices to flush their internal caches > Currently implemented for wd and sd. > Initially ported from netbsd by pedro@ > ok deraadt@ (sf@) ~ sd.c > sd: flush cache when closing writable FD > Don't skip the cache flush until the last opening of the device is > closed. Otherwise, when umounting a writable partition while a different > partition is still mounted read-only, the necessary disk flush may be > delayed for a very long time. > ok krw@ deraadt@ (sf@) sys - scanio.h > scanner support died some time ago, the header can be removed too. > a gift from miod (tedu@) ~ systm.h > clang has builtin_memmove. ok deraadt (tedu@) ~ dkio.h > Add an ioctl to tell storage devices to flush their internal caches > Currently implemented for wd and sd. > Initially ported from netbsd by pedro@ > ok deraadt@ (sf@) ufs/ffs ~ ffs_vfsops.c > msdosfs & ffs: flush cache if updating mount from r/w to r/o > ok deraadt@ (sf@) == usr.bin =========================================================== 10/11 == http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/usr.bin compress ~ zopen.c > Remove unused zclose function. > From Brian Callahan, thanks! > OK tb@ (fcambus@) cvs ~ file.c ~ update.c > cvs_file_classify() was making the mistake of only taking over a sticky > tag from Entries for a given file if the sticky tag is present. > while changing this we can simplify some logic in update.c on how it > decides what tag to use for file classification. (joris@) kdump ~ Makefile ~ mkioctls > zap scanio.h, found by deraadt (tedu@) mail ~ mail.1 > remove mention of Berknet and mailaddr.7 (tedu@) ~ mail.1 > tweak previous to read a little better; (jmc@) tmux ~ tmux.1 > Tweak text to mention initial size, from John Hood. (nicm@) ~ window-copy.c > Do not factor in screen_hsize() for the visible copy mode screen when > adjusting the selection, it should never have any useful history (and > when it does, after resize, we shouldn't use it). From Michal Mazurek. > (nicm@) ~ format.c ~ tmux.1 > Add m: for fnmatch(3) format matching. (nicm@) ~ cmd-find-window.c ~ format.c ~ tmux.1 ~ tmux.h ~ window.c > Add ||, && format operators and C: to search pane content. (nicm@) ~ server-client.c ~ tmux.h > Function to count clients. (nicm@) ~ options-table.c ~ server-client.c ~ status.c ~ tmux.h > Store a copy of the old status line, will be needed soon for new choose > mode. (nicm@) ~ status.c ~ tmux.h > Add a flag to stop the prompt input being expanded. (nicm@) == usr.sbin ========================================================== 11/11 == http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/usr.sbin usr.sbin ~ Makefile > hook up slaacd and slaacctl. > OK naddy, deraadt (florian@) bgpctl ~ bgpctl.8 ~ bgpctl.c > change bgpd's control socket from /var/run/bgpd.sock to > /var/run/bgpd.sock.<rdomain> in both bgpd and bgpctl. makes life > easier for admins. > ok phessler, claudio, henning, feedback from Job Snijders (benno@) ~ bgpctl.8 > avoid Xr to self; (jmc@) ~ bgpctl.8 > change section title in bgpd.conf talking about MPLS, > add a bit about working with multiple bgpds in rdomains in bgpctl. > shouting from claudio@ and help from jmc@ (benno@) ~ bgpctl.8 > missing .El; (jmc@) bgpd ~ parse.y > remove the file permission check for bgpd.conf > OK deraadt@, henning@, sthen@, and everyone who has ever been annoyed > (phessler@) ~ bgpd.conf.5 ~ config.c > change bgpd's control socket from /var/run/bgpd.sock to > /var/run/bgpd.sock.<rdomain> in both bgpd and bgpctl. makes life > easier for admins. > ok phessler, claudio, henning, feedback from Job Snijders (benno@) ~ rde.c > Fix crash in IMSG_CTL_SHOW_RIB_PREFIX handling. The ctx is not added to > the list in that case so don't try to LIST_REMOVE it. > Problem found by benno@ (claudio@) ~ rde.c > After some consideration, revert last commit and don't abuse rde_dump_done. > IMSG_CTL_SHOW_RIB_PREFIX case is not using rib_dump_r and so should not use > rde_dump_done, instead send the IMSG_CTL_END msg and free the ctx directly. > This is easier to understand. (claudio@) ~ session.c > fix "depend on" when carp interface goes from MASTER into state INIT > aka UNKNOWN. > ok claudio@ phessler@ and henning helped along too (benno@) ~ bgpd.conf.5 > change section title in bgpd.conf talking about MPLS, > add a bit about working with multiple bgpds in rdomains in bgpctl. > shouting from claudio@ and help from jmc@ (benno@) pkg_add ~ OpenBSD/FwUpdate.pm ~ OpenBSD/PackageLocator.pm ~ OpenBSD/PackageRepositoryList.pm ~ OpenBSD/State.pm > Refactor locator code so it's a proper object. > allow fw_update to short-circuit entirely, thus the specific > treatment of paths is actually less of a special case, > and the code that reaches into /etc/installurl is no longer used > at all in that case. > problem noticed by mlarkin@ (espie@) ~ OpenBSD/PackageRepository.pm > do not whine if installpath is undef. (espie@) slaacd ~ engine.c ~ frontend.c > only send router solicitation on RTM_NEWADDR if the l2 address changed > (florian@) ~ engine.c > Compare the l2 address from which the slaac address was formed with > the current interface l2 address. Only update the address lifetime if > they are the same. This way we get a new address on ifconfig lladdr > random. (florian@) ~ engine.c ~ frontend.c ~ slaacd.c > clang points out that the first argument to setproctitle is a format > string. Not really an issue since we are eventually passing in a > string literal... > While here don't set the proctitle for the main process to play nicer > with rc.d(8) (florian@) ~ slaacd.c > The kernel sets IN6_IFF_AUTOCONF for autoconf addresses, also make > slaacd(8) do that. At least you can identify them in ifconfig output. > Difference pointed out by & OK naddy (florian@) smtpd ~ aliases.5 > rm xr mailaddr.7 (tedu@) snmpd ~ proc.c > sync proc.c changes from relayd/httpd (benno@) switchd ~ proc.c > sync proc.c changes from relayd/httpd (benno@) vmd ~ vmd.c > vmd(8): prevent crashing when presented with a vm name argument to > "vmctl stop" that doesn't exist. > Diff from Pratik Vyas, thanks! (mlarkin@) ~ proc.c > sync proc.c changes from relayd/httpd (benno@) =============================================================================== _______________________________________________ odc mailing list [email protected] http://www.squish.net/mailman/listinfo/odc
