Proposed commit log message:
> Plug a memory leak and potential NULL-pointer dereference introduced in r331214.
>
> Each TCP connection that uses the system default cc_newreno(4) congestion
> control algorithm module leaks a "struct newreno" (8 bytes of memory) at
> connection initialisation time. The NULL-pointer dereference is only germane
> when using the ABE feature, which is disabled by default.
>
> While at it:
>
> - Defer the allocation of memory until it is actually needed given that ABE is
> optional and disabled by default.
>
> - Document the ENOMEM errno in getsockopt(2)/setsockopt(2).
>
> - Document ENOMEM and ENOBUFS in tcp(4) as being synonymous given that they are
> used interchangeably throughout the code.
>
> - Fix a few other nits also accidentally omitted from the original patch.
>
> Reported by: Harsh Jain on freebsd-net@
> Tested by: tjh@
> Differential Revision: https://reviews.freebsd.org/D15358