On 28.05.2019 09:07, Robert Elz wrote:
> Date: Tue, 28 May 2019 05:31:54 -0000 (UTC)
> From: mlelstv%serpens.de@localhost (Michael van Elst)
> Message-ID: <qcih49$9tq$1%serpens.de@localhost>
>
>
> | >http://netbsd.org/~kamil/patch-00115-tcp_input.2.txt
>
> | Why would the first be obvious? The TCP header is already aligned
> | and so is the first option value. I am pretty sure that worse things
> | will happen if that assumption were broken.
>
> Upon reflection, and really looking at the code, I agree.
>
> | The patch therefore exists to work around a false positive.
>
> Yes.
>
> No changes are needed for this one. th is aligned (there is a KASSERT).
> Therefore th + 40 is aligned (both to 32 bit boundaries). I hadn't
> noticed this was in the fast path "only timestamp option" handling code
> (as that option exists, usually alone, in almost every packet).
>
> kre
>
This assert is dummy on x86.
46 #ifdef __NO_STRICT_ALIGNMENT
47 #define TCP_HDR_ALIGNED_P(th) 1
48 #else
49 #define TCP_HDR_ALIGNED_P(th) ((((vaddr_t)(th)) & 3) == 0)
50 #endif /* __NO_STRICT_ALIGNMENT */
https://nxr.netbsd.org/xref/src/sys/netinet/tcp_private.h#49
As mentioned in the logs [1], the address is misaligned.
[1] http://netbsd.org/~kamil/patch-00115-tcp_input.2.txt
Attachment:
signature.asc
Description: OpenPGP digital signature