avoid use-after-free when a network interface is destroyed
When iterating over the protocols list, the got_one handler will free
a protocol if an interface dhcpd was listening on was destroyed.
problem reported by landry@, feedback and ok claudio@
take advantage of if_vinput not sleeping now to avoid real refcnts
the vlan tag hash was an array of smr protectect lists. previously
when we found a vlan interface in the tag hash we'd take a real ref
(refcnt_take) to that interface before pushing it through the network
stack with if_vinput. we did this because the network stack can
sleep, and you can't sleep in an smr critical section.
now that if_vinput simply queues the packet without sleeping, we
can call it from the smr critical section and skip taking and
releasing real refs with atomic ops. this is a win if the vlan
parent interfaces are multiq and doing a lot of packets across
multiple softnet threads because the cacheline the refcnt is on
doesnt have to be modified, hopefully it can be shared (or not used
at all) instead.
Fix race in vmm(4) vm termination path.
Two callers can enter vm_terminate simultaneously and race to remove
the vm from the SLIST and teardown the vm. This adds a flag to the
vm struct and uses atomic cas operations to only have one caller
advance while the other callers receive EBUSY.
ok mlarkin@
Reported-by: syzbot+b3be6264d2f1d5c22b0b at syzkaller.appspotmail.com
CookCLI provides a suite of commands to create shopping lists,
reports and maintain recipes. We've built it to be simple and useful
for automating your cooking and shopping routine with existing UNIX
command line and scripting tools. It can also function as a webserver
for your recipes, making them browsable on any device with a web
browser.
comments sthen@, ian@ and jca@, ok bentley@
import ports/graphics/gimp/stroke-arrows, from espie, ok tb
(+ whitespace nits from me)
Plugin for gimp: stroke one or several paths as arrow,
it will be placed at the bottom of the "Edit" menu.
A few styles are available for the arrowhead and tail,
the body is a standard line stroke with configureable with.