kern/128260: [ipfw] [patch] ipfw_divert damages IPv6 packets
Sergey Matveychuk
sem33 at yandex-team.ru
Tue Mar 15 19:10:12 UTC 2011
The following reply was made to PR kern/128260; it has been noted by GNATS.
From: Sergey Matveychuk <sem33 at yandex-team.ru>
To: bug-followup at FreeBSD.org, dan at obluda.cz
Cc:
Subject: Re: kern/128260: [ipfw] [patch] ipfw_divert damages IPv6 packets
Date: Tue, 15 Mar 2011 22:06:28 +0300
This is a multi-part message in MIME format.
--------------030906040307050306030601
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Complete remove nd6.c part. I'll send it separately with explanations.
--------------030906040307050306030601
Content-Type: text/plain;
name="divert-ipv6.diff"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="divert-ipv6.diff"
LS0tIHN5cy9uZXRpbmV0L2lwZncvaXBfZndfcGZpbC5jLm9yaWcJMjAxMC0xMi0xMCAwODox
ODozNy4wMDAwMDAwMDAgKzAzMDAKKysrIHN5cy9uZXRpbmV0L2lwZncvaXBfZndfcGZpbC5j
CTIwMTEtMDMtMTUgMjA6MDg6MjMuMDAwMDAwMDAwICswMzAwCkBAIC0yODksNyArMjg5LDcg
QEAKIAkgKiB3ZSBjYW4gZG8gaXQgYmVmb3JlIGEgJ3RlZScuCiAJICovCiAJaXAgPSBtdG9k
KGNsb25lLCBzdHJ1Y3QgaXAgKik7Ci0JaWYgKCF0ZWUgJiYgbnRvaHMoaXAtPmlwX29mZikg
JiAoSVBfTUYgfCBJUF9PRkZNQVNLKSkgeworCWlmIChpcC0+aXBfdiA9PSA0ICYmICF0ZWUg
JiYgbnRvaHMoaXAtPmlwX29mZikgJiAoSVBfTUYgfCBJUF9PRkZNQVNLKSkgewogCQlpbnQg
aGxlbjsKIAkJc3RydWN0IG1idWYgKnJlYXNzOwogCi0tLSBzeXMvbmV0aW5ldC9pcF9kaXZl
cnQuYy5vcmlnCTIwMTAtMDgtMjcgMjI6NTA6MTIuMDAwMDAwMDAwICswNDAwCisrKyBzeXMv
bmV0aW5ldC9pcF9kaXZlcnQuYwkyMDExLTAzLTE1IDIxOjI0OjA2LjAwMDAwMDAwMCArMDMw
MApAQCAtMzcsNiArMzcsNyBAQAogI2Vycm9yICJJUERJVkVSVCByZXF1aXJlcyBJTkVULiIK
ICNlbmRpZgogI2VuZGlmCisjaW5jbHVkZSAib3B0X2luZXQ2LmgiCiAKICNpbmNsdWRlIDxz
eXMvcGFyYW0uaD4KICNpbmNsdWRlIDxzeXMva2VybmVsLmg+CkBAIC02OSw2ICs3MCw4IEBA
CiAjaW5jbHVkZSA8bmV0aW5ldC9pbl92YXIuaD4KICNpbmNsdWRlIDxuZXRpbmV0L2lwLmg+
CiAjaW5jbHVkZSA8bmV0aW5ldC9pcF92YXIuaD4KKyNpbmNsdWRlIDxuZXRpbmV0L2lwNi5o
PgorI2luY2x1ZGUgPG5ldGluZXQ2L2lwNl92YXIuaD4KICNpZmRlZiBTQ1RQCiAjaW5jbHVk
ZSA8bmV0aW5ldC9zY3RwX2NyYzMyLmg+CiAjZW5kaWYKQEAgLTM4OSw3MSArMzkyLDEwMyBA
QAogCS8qIFJlaW5qZWN0IHBhY2tldCBpbnRvIHRoZSBzeXN0ZW0gYXMgaW5jb21pbmcgb3Ig
b3V0Z29pbmcgKi8KIAlpZiAoIXNpbiB8fCBzaW4tPnNpbl9hZGRyLnNfYWRkciA9PSAwKSB7
CiAJCXN0cnVjdCBpcCAqY29uc3QgaXAgPSBtdG9kKG0sIHN0cnVjdCBpcCAqKTsKKyNpZmRl
ZiBJTkVUNgorCQlzdHJ1Y3QgaXA2X2hkciAqY29uc3QgaXA2ID0gbXRvZChtLCBzdHJ1Y3Qg
aXA2X2hkciAqKTsKKyNlbmRpZgogCQlzdHJ1Y3QgaW5wY2IgKmlucDsKIAogCQlkdC0+aW5m
byB8PSBJUEZXX0lTX0RJVkVSVCB8IElQRldfSU5GT19PVVQ7CiAJCWlucCA9IHNvdG9pbnBj
Yihzbyk7CiAJCUlOUF9STE9DSyhpbnApOwotCQkvKgotCQkgKiBEb24ndCBhbGxvdyBib3Ro
IHVzZXIgc3BlY2lmaWVkIGFuZCBzZXRzb2Nrb3B0IG9wdGlvbnMsCi0JCSAqIGFuZCBkb24n
dCBhbGxvdyBwYWNrZXQgbGVuZ3RoIHNpemVzIHRoYXQgd2lsbCBjcmFzaAotCQkgKi8KLQkJ
aWYgKCgoaXAtPmlwX2hsICE9IChzaXplb2YgKCppcCkgPj4gMikpICYmIGlucC0+aW5wX29w
dGlvbnMpIHx8Ci0JCSAgICAgKCh1X3Nob3J0KW50b2hzKGlwLT5pcF9sZW4pID4gbS0+bV9w
a3RoZHIubGVuKSkgewotCQkJZXJyb3IgPSBFSU5WQUw7Ci0JCQlJTlBfUlVOTE9DSyhpbnAp
OwotCQkJbV9mcmVlbShtKTsKLQkJfSBlbHNlIHsKKwkJaWYgKGlwLT5pcF92ID09IDQpIHsK
KwkJCS8qCisJCQkgKiBEb24ndCBhbGxvdyBib3RoIHVzZXIgc3BlY2lmaWVkIGFuZCBzZXRz
b2Nrb3B0IG9wdGlvbnMsCisJCQkgKiBhbmQgZG9uJ3QgYWxsb3cgcGFja2V0IGxlbmd0aCBz
aXplcyB0aGF0IHdpbGwgY3Jhc2gKKwkJCSAqLworCQkJaWYgKCgoaXAtPmlwX2hsICE9IChz
aXplb2YgKCppcCkgPj4gMikpICYmIGlucC0+aW5wX29wdGlvbnMpIHx8CisJCQkgICAgICgo
dV9zaG9ydCludG9ocyhpcC0+aXBfbGVuKSA+IG0tPm1fcGt0aGRyLmxlbikpIHsKKwkJCQll
cnJvciA9IEVJTlZBTDsKKwkJCQlJTlBfUlVOTE9DSyhpbnApOworCQkJCWdvdG8gY2FudHNl
bmQ7CisJCQl9CisKIAkJCS8qIENvbnZlcnQgZmllbGRzIHRvIGhvc3Qgb3JkZXIgZm9yIGlw
X291dHB1dCgpICovCiAJCQlpcC0+aXBfbGVuID0gbnRvaHMoaXAtPmlwX2xlbik7CiAJCQlp
cC0+aXBfb2ZmID0gbnRvaHMoaXAtPmlwX29mZik7CisJCX0KKyNpZmRlZiBJTkVUNgkJCisJ
CWVsc2UKKwkJCWlmIChpcC0+aXBfdiA9PSA2KSB7CisJCQkgICAgLyogRG9uJ3QgYWxsb3cg
cGFja2V0IGxlbmd0aCBzaXplcyB0aGF0IHdpbGwgY3Jhc2ggKi8KKwkJCSAgICBpZiAoKCh1
X3Nob3J0KW50b2hzKGlwNi0+aXA2X3BsZW4pID4gbS0+bV9wa3RoZHIubGVuKSkgeworCQkJ
CSAgICBlcnJvciA9IEVJTlZBTDsKKwkJCQkgICAgSU5QX1JVTkxPQ0soaW5wKTsKKwkJCQkg
ICAgZ290byBjYW50c2VuZDsKKwkJCSAgICB9CisKKwkJCSAgICBpcDYtPmlwNl9wbGVuID0g
bnRvaHMoaXA2LT5pcDZfcGxlbik7CisJCQl9CisjZW5kaWYKKwkJLyogVW5rbm93biBwcm90
b2NvbCAqLworCQllbHNlIHsKKwkJCWVycm9yID0gRUlOVkFMOworCQkJSU5QX1JVTkxPQ0so
aW5wKTsKKwkJCWdvdG8gY2FudHNlbmQ7CisJCX0KIAotCQkJLyogU2VuZCBwYWNrZXQgdG8g
b3V0cHV0IHByb2Nlc3NpbmcgKi8KLQkJCUtNT0RfSVBTVEFUX0lOQyhpcHNfcmF3b3V0KTsJ
CS8qIFhYWCAqLworCQkvKiBTZW5kIHBhY2tldCB0byBvdXRwdXQgcHJvY2Vzc2luZyAqLwor
CQlLTU9EX0lQU1RBVF9JTkMoaXBzX3Jhd291dCk7CQkvKiBYWFggKi8KIAogI2lmZGVmIE1B
QwotCQkJbWFjX2lucGNiX2NyZWF0ZV9tYnVmKGlucCwgbSk7CisJCW1hY19pbnBjYl9jcmVh
dGVfbWJ1ZihpbnAsIG0pOwogI2VuZGlmCi0JCQkvKgotCQkJICogR2V0IHJlYWR5IHRvIGlu
amVjdCB0aGUgcGFja2V0IGludG8gaXBfb3V0cHV0KCkuCi0JCQkgKiBKdXN0IGluIGNhc2Ug
c29ja2V0IG9wdGlvbnMgd2VyZSBzcGVjaWZpZWQgb24gdGhlCi0JCQkgKiBkaXZlcnQgc29j
a2V0LCB3ZSBkdXBsaWNhdGUgdGhlbS4gIFRoaXMgaXMgZG9uZQotCQkJICogdG8gYXZvaWQg
aGF2aW5nIHRvIGhvbGQgdGhlIFBDQiBsb2NrcyBvdmVyIHRoZSBjYWxsCi0JCQkgKiB0byBp
cF9vdXRwdXQoKSwgYXMgZG9pbmcgdGhpcyByZXN1bHRzIGluIGEgbnVtYmVyIG9mCi0JCQkg
KiBsb2NrIG9yZGVyaW5nIGNvbXBsZXhpdGllcy4KLQkJCSAqCi0JCQkgKiBOb3RlIHRoYXQg
d2Ugc2V0IHRoZSBtdWx0aWNhc3Qgb3B0aW9ucyBhcmd1bWVudCBmb3IKLQkJCSAqIGlwX291
dHB1dCgpIHRvIE5VTEwgc2luY2UgaXQgc2hvdWxkIGJlIGludmFyaWFudCB0aGF0Ci0JCQkg
KiB0aGV5IGFyZSBub3QgcHJlc2VudC4KLQkJCSAqLwotCQkJS0FTU0VSVChpbnAtPmlucF9t
b3B0aW9ucyA9PSBOVUxMLAotCQkJICAgICgibXVsdGljYXN0IG9wdGlvbnMgc2V0IG9uIGEg
ZGl2ZXJ0IHNvY2tldCIpKTsKLQkJCW9wdGlvbnMgPSBOVUxMOwotCQkJLyoKLQkJCSAqIFhY
WENTSlA6IEl0IGlzIHVuY2xlYXIgdG8gbWUgd2hldGhlciBvciBub3QgaXQgbWFrZXMKLQkJ
CSAqIHNlbnNlIGZvciBkaXZlcnQgc29ja2V0cyB0byBoYXZlIG9wdGlvbnMuICBIb3dldmVy
LAotCQkJICogZm9yIG5vdyB3ZSB3aWxsIGR1cGxpY2F0ZSB0aGVtIHdpdGggdGhlIElOUCBs
b2NrcwotCQkJICogaGVsZCBzbyB3ZSBjYW4gdXNlIHRoZW0gaW4gaXBfb3V0cHV0KCkgd2l0
aG91dAotCQkJICogcmVxdXJpbmcgYSByZWZlcmVuY2UgdG8gdGhlIHBjYi4KLQkJCSAqLwot
CQkJaWYgKGlucC0+aW5wX29wdGlvbnMgIT0gTlVMTCkgewotCQkJCW9wdGlvbnMgPSBtX2R1
cChpbnAtPmlucF9vcHRpb25zLCBNX0RPTlRXQUlUKTsKLQkJCQlpZiAob3B0aW9ucyA9PSBO
VUxMKQotCQkJCQllcnJvciA9IEVOT0JVRlM7Ci0JCQl9Ci0JCQlJTlBfUlVOTE9DSyhpbnAp
OwotCQkJaWYgKGVycm9yID09IEVOT0JVRlMpIHsKLQkJCQltX2ZyZWVtKG0pOwotCQkJCXJl
dHVybiAoZXJyb3IpOwotCQkJfQotCQkJZXJyb3IgPSBpcF9vdXRwdXQobSwgb3B0aW9ucywg
TlVMTCwKLQkJCSAgICAoKHNvLT5zb19vcHRpb25zICYgU09fRE9OVFJPVVRFKSA/Ci0JCQkg
ICAgSVBfUk9VVEVUT0lGIDogMCkgfCBJUF9BTExPV0JST0FEQ0FTVCB8Ci0JCQkgICAgSVBf
UkFXT1VUUFVULCBOVUxMLCBOVUxMKTsKLQkJCWlmIChvcHRpb25zICE9IE5VTEwpCi0JCQkJ
bV9mcmVlbShvcHRpb25zKTsKKwkJLyoKKwkJICogR2V0IHJlYWR5IHRvIGluamVjdCB0aGUg
cGFja2V0IGludG8gaXBfb3V0cHV0KCkuCisJCSAqIEp1c3QgaW4gY2FzZSBzb2NrZXQgb3B0
aW9ucyB3ZXJlIHNwZWNpZmllZCBvbiB0aGUKKwkJICogZGl2ZXJ0IHNvY2tldCwgd2UgZHVw
bGljYXRlIHRoZW0uICBUaGlzIGlzIGRvbmUKKwkJICogdG8gYXZvaWQgaGF2aW5nIHRvIGhv
bGQgdGhlIFBDQiBsb2NrcyBvdmVyIHRoZSBjYWxsCisJCSAqIHRvIGlwX291dHB1dCgpLCBh
cyBkb2luZyB0aGlzIHJlc3VsdHMgaW4gYSBudW1iZXIgb2YKKwkJICogbG9jayBvcmRlcmlu
ZyBjb21wbGV4aXRpZXMuCisJCSAqCisJCSAqIE5vdGUgdGhhdCB3ZSBzZXQgdGhlIG11bHRp
Y2FzdCBvcHRpb25zIGFyZ3VtZW50IGZvcgorCQkgKiBpcF9vdXRwdXQoKSB0byBOVUxMIHNp
bmNlIGl0IHNob3VsZCBiZSBpbnZhcmlhbnQgdGhhdAorCQkgKiB0aGV5IGFyZSBub3QgcHJl
c2VudC4KKwkJICovCisJCUtBU1NFUlQoaW5wLT5pbnBfbW9wdGlvbnMgPT0gTlVMTCwKKwkJ
ICAgICgibXVsdGljYXN0IG9wdGlvbnMgc2V0IG9uIGEgZGl2ZXJ0IHNvY2tldCIpKTsKKwkJ
b3B0aW9ucyA9IE5VTEw7CisJCS8qCisJCSAqIFhYWENTSlA6IEl0IGlzIHVuY2xlYXIgdG8g
bWUgd2hldGhlciBvciBub3QgaXQgbWFrZXMKKwkJICogc2Vuc2UgZm9yIGRpdmVydCBzb2Nr
ZXRzIHRvIGhhdmUgb3B0aW9ucy4gIEhvd2V2ZXIsCisJCSAqIGZvciBub3cgd2Ugd2lsbCBk
dXBsaWNhdGUgdGhlbSB3aXRoIHRoZSBJTlAgbG9ja3MKKwkJICogaGVsZCBzbyB3ZSBjYW4g
dXNlIHRoZW0gaW4gaXBfb3V0cHV0KCkgd2l0aG91dAorCQkgKiByZXF1cmluZyBhIHJlZmVy
ZW5jZSB0byB0aGUgcGNiLgorCQkgKi8KKwkJaWYgKGlucC0+aW5wX29wdGlvbnMgIT0gTlVM
TCkgeworCQkJb3B0aW9ucyA9IG1fZHVwKGlucC0+aW5wX29wdGlvbnMsIE1fRE9OVFdBSVQp
OworCQkJaWYgKG9wdGlvbnMgPT0gTlVMTCkKKwkJCQllcnJvciA9IEVOT0JVRlM7CisJCX0K
KwkJSU5QX1JVTkxPQ0soaW5wKTsKKwkJaWYgKGVycm9yID09IEVOT0JVRlMpIHsKKwkJCW1f
ZnJlZW0obSk7CisJCQlyZXR1cm4gKGVycm9yKTsKIAkJfQorCQlpZiAoaXAtPmlwX3YgPT0g
NCkKKwkJICAgIGVycm9yID0gaXBfb3V0cHV0KG0sIG9wdGlvbnMsIE5VTEwsCisJCQkoKHNv
LT5zb19vcHRpb25zICYgU09fRE9OVFJPVVRFKSA/CisJCQlJUF9ST1VURVRPSUYgOiAwKSB8
IElQX0FMTE9XQlJPQURDQVNUIHwKKwkJCUlQX1JBV09VVFBVVCwgTlVMTCwgTlVMTCk7Cisj
aWZkZWYgSU5FVDYKKwkJZWxzZQorCQkgICAgZXJyb3IgPSBpcDZfb3V0cHV0KG0sIE5VTEws
IE5VTEwsIDAsIAorCQkJTlVMTCwgTlVMTCwgTlVMTCk7CisjZW5kaWYKKwkJaWYgKG9wdGlv
bnMgIT0gTlVMTCkKKwkJCW1fZnJlZW0ob3B0aW9ucyk7CiAJfSBlbHNlIHsKKwkJc3RydWN0
IGlwICpjb25zdCBpcCA9IG10b2QobSwgc3RydWN0IGlwICopOworCiAJCWR0LT5pbmZvIHw9
IElQRldfSVNfRElWRVJUIHwgSVBGV19JTkZPX0lOOwogCQlpZiAobS0+bV9wa3RoZHIucmN2
aWYgPT0gTlVMTCkgewogCQkJLyoKQEAgLTQ3Nyw3ICs1MTIsMTIgQEAKIAkJbWFjX3NvY2tl
dF9jcmVhdGVfbWJ1ZihzbywgbSk7CiAjZW5kaWYKIAkJLyogU2VuZCBwYWNrZXQgdG8gaW5w
dXQgcHJvY2Vzc2luZyB2aWEgbmV0aXNyICovCi0JCW5ldGlzcl9xdWV1ZV9zcmMoTkVUSVNS
X0lQLCAodWludHB0cl90KXNvLCBtKTsKKwkJaWYgKGlwLT5pcF92ID09IDQpCisJCSAgICBu
ZXRpc3JfcXVldWVfc3JjKE5FVElTUl9JUCwgKHVpbnRwdHJfdClzbywgbSk7CisjaWZkZWYg
SU5FVDYKKwkJZWxzZQorCQkgICAgbmV0aXNyX3F1ZXVlX3NyYyhORVRJU1JfSVBWNiwgKHVp
bnRwdHJfdClzbywgbSk7CisjZW5kaWYKIAl9CiAKIAlyZXR1cm4gZXJyb3I7Ci0tLSBzeXMv
bW9kdWxlcy9pcGRpdmVydC9NYWtlZmlsZS5vcmlnCTIwMDktMDgtMDMgMTI6MTM6MDYuMDAw
MDAwMDAwICswNDAwCisrKyBzeXMvbW9kdWxlcy9pcGRpdmVydC9NYWtlZmlsZQkyMDExLTAz
LTE1IDIxOjE5OjMzLjAwMDAwMDAwMCArMDMwMApAQCAtMyw2ICszLDExIEBACiAuUEFUSDog
JHsuQ1VSRElSfS8uLi8uLi9uZXRpbmV0CiAKIEtNT0Q9ICAgaXBkaXZlcnQKLVNSQ1M9ICAg
aXBfZGl2ZXJ0LmMKK1NSQ1M9ICAgaXBfZGl2ZXJ0LmMgb3B0X2luZXQ2LmgKKworLmlmICFk
ZWZpbmVkKEtFUk5CVUlMRERJUikKK29wdF9pbmV0Ni5oOgorCWVjaG8gIiNkZWZpbmUgSU5F
VDYgMSIgPiAkey5UQVJHRVR9CisuZW5kaWYKIAogLmluY2x1ZGUgPGJzZC5rbW9kLm1rPgo=
--------------030906040307050306030601--
More information about the freebsd-ipfw
mailing list