www/yarn-node*: Reorganize yarn-node* as node24 is the new default
- While I'm here, fix the missing move of www/yarn-node20/files in ef17b830d649cd5c0c4e659015e47bc934b8ced3
sh: Fix a double free in a rare scenario with pipes
The command
sh -c 'sleep 3 | sleep 2 & sleep 3 & kill %1; wait %1'
crashes (with appropriate sanitization such as putting
MALLOC_CONF=abort:true,junk:true in the environment or compiling with
-fsanitize=address).
What happens here is that waitcmdloop() calls dowait() with a NULL job
pointer, instructing dowait() to freejob() if it's a non-interactive
shell and $! was not and cannot be referenced for it. However,
waitcmdloop() then uses fields possibly freed by freejob() and calls
freejob() again.
This only occurs if the job being waited for is identified via % syntax
($! has never been referenced for it), it is a pipeline with two or more
elements and another background job has been started before the wait
command. That seems special enough for a bug to remain. Test scripts
written by Jilles would almost always use $! and not % syntax.
[13 lines not shown]
nvme: Abstract out function to obtain a disk ident string from cdata
This will permit sharing the code with nvmf(4).
Sponsored by: Chelsio Communications
Differential Revision: https://reviews.freebsd.org/D53338