diff options
author | rwatson <rwatson@FreeBSD.org> | 2007-11-20 18:50:54 +0000 |
---|---|---|
committer | rwatson <rwatson@FreeBSD.org> | 2007-11-20 18:50:54 +0000 |
commit | 2fce7b68b16a49f313efe92dbb2a070ea971ae94 (patch) | |
tree | a0ef35884440294d7523a1008ed3effea3517195 | |
parent | 261a3b571debe7c65897926607e60df262479274 (diff) | |
download | FreeBSD-src-2fce7b68b16a49f313efe92dbb2a070ea971ae94.zip FreeBSD-src-2fce7b68b16a49f313efe92dbb2a070ea971ae94.tar.gz |
Annotate two possible bugs in a comment: (1) we allocate and explicitly
prepend a data mbuf in front of a header mbuf without moving the header
to the new mbuf, and (2) a possible alignment problem on architectures
with strict alignment as reported in kern/4184.
PR: kern/4184 (1)
-rw-r--r-- | sys/netatalk/ddp_output.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/sys/netatalk/ddp_output.c b/sys/netatalk/ddp_output.c index bc85fcb..9581094 100644 --- a/sys/netatalk/ddp_output.c +++ b/sys/netatalk/ddp_output.c @@ -191,6 +191,14 @@ ddp_route(struct mbuf *m, struct route *ro) * mbuf without ensuring that the mbuf pointer is aligned. This is * bad for transition routing, since phase 1 and phase 2 packets end * up poorly aligned due to the three byte elap header. + * + * XXXRW: kern/4184 suggests that an m_pullup() of (m) should take + * place here to address possible alignment issues. + * + * XXXRW: This appears not to handle M_PKTHDR properly, as it doesn't + * move the existing header from the old packet to the new one. + * Posibly should call M_MOVE_PKTHDR()? This would also allow + * removing mac_mbuf_copy(). */ if (!(aa->aa_flags & AFA_PHASE2)) { MGET(m0, M_DONTWAIT, MT_DATA); |