[PATCH] sbin/ipfw fixes (final)
------=_Part_1324_19878657.1114436061015
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline
the attached patch did the following:
1) check all possible fomat error after strtoul()
2) change '\0' to NULL, when it is compared with char pointer
3) strip blank line between if() and the conditional code
please review it
there are still things to do on sbin/ipfw:
1) show_ipfw():
code to output "from ..." and "to ..." are duplicated. will it be
better to factor them out?
2) fill_icmptype():
IP_FW_ICMPTYPES_DIM * sizeof(unsigned) * 8
could be replaced by IP_FW_ICMPTYPES_MAX
which is defined in net/ipfw/ip_fw.h
this expression also exists in show_ipfw()
types[icmptype / (sizeof(unsigned) * 8)] |=3D
=09=09=091 << (icmptype % (sizeof(unsigned) * 8));
IMHO, define macros like SET_ICMPTYPE()/TEST_ICMPTYPE()
in net/ipfw/ip_fw.h will be much better than spread this set/test
all arround (at least in three locations, first here, second in
show_ipfw(), third in sys/net/ipfw/ip_fw.c icmptype_match())
last line in the main loop of this function could be moved
outside of it, since this loop will be go through least once.
this may be not worth noticing :-)
BTW, sorry for the previous mail about sbin/ipfw
--=20
Live Free or Die
------=_Part_1324_19878657.1114436061015
Content-Type: text/plain; name="patch-ipfw.c.txt"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="patch-ipfw.c.txt"
SW5kZXg6IGlwZncuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvb3B0L2RmX2N2cy9zcmMvc2Jpbi9p
cGZ3L2lwZncuYyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS43CmRpZmYgLXUgLXIxLjcgaXBmdy5j
Ci0tLSBpcGZ3LmMJMTggRGVjIDIwMDQgMjE6NDM6MzggLTAwMDAJMS43CisrKyBpcGZ3LmMJMjUg
QXByIDIwMDUgMTM6MDM6NTcgLTAwMDAKQEAgLTY3Niw2ICs2NzYsNyBAQAogCWludCBiY3dpZHRo
ID0gMDsKIAlpbnQgbiwgbnVtID0gMDsKIAlpbnQgbmJ5dGVzOworCWNoYXIgKmVuZHB0cjsKIAog
CS8qIGdldCBydWxlcyBvciBwaXBlcyBmcm9tIGtlcm5lbCwgcmVzaXppbmcgYXJyYXkgYXMgbmVj
ZXNzYXJ5ICovCiAJewpAQCAtNzA0LDEwICs3MDUsMTUgQEAKIAkJc3RydWN0IGRuX2Zsb3dfcXVl
dWUgKnE7CiAJCWludCBsOwogCi0JCWlmIChhYyA+IDApCi0JCQlydWxlbnVtID0gc3RydG91bCgq
YXYrKywgTlVMTCwgMTApOwotCQllbHNlCisJCWlmIChhYyA+IDApIHsKKwkJCXJ1bGVudW0gPSBz
dHJ0b3VsKCphdisrLCAmZW5kcHRyLCAxMCk7CisJCQlpZiAoKmVuZHB0ciAhPSAnXDAnKSB7CisJ
CQkJZXJyKEVYX1VTQUdFLCAiaW52YWxpZCBwaXBlIG51bWJlcjogJXMiLAorCQkJCSAgICAqKGF2
IC0gMSkpOworCQkJfQorCQl9IGVsc2UgewogCQkJcnVsZW51bSA9IDA7CisJCX0KIAkJZm9yICg7
IG5ieXRlcyA+PSBzaXplb2YgKnA7IHAgPSAoc3RydWN0IGRuX3BpcGUgKiluZXh0KSB7CiAJCQlk
b3VibGUgYiA9IHAtPmJhbmR3aWR0aDsKIAkJCWNoYXIgYnVmWzMwXTsKQEAgLTc5Niw3ICs4MDIs
NiBAQAogCiAJCXdoaWxlIChhYy0tKSB7CiAJCQl1X2xvbmcgcm51bTsKLQkJCWNoYXIgKmVuZHB0
cjsKIAkJCWludCBzZWVuOwogCiAJCQkvKiBjb252ZXJ0IGNvbW1hbmQgbGluZSBydWxlICMgKi8K
QEAgLTk0MCw2ICs5NDUsMTkgQEAKIAlyZXR1cm4oMCk7CiB9CiAKK3N0YXRpYyBpbnQKK2ZpbGxf
bmV0bWFzayhzdHJ1Y3QgaW5fYWRkciAqbWFzaywgY29uc3QgY2hhciAqd2lkX3N0cikKK3sKKwlj
aGFyICplcDsKKwl1X2xvbmcgd2lkOworCisJd2lkID0gc3RydG91bCh3aWRfc3RyLCAmZXAsIDEw
KTsKKwlpZiAoKmVwICE9ICdcMCcgfHwgd2lkID4gMzIpCisJCXJldHVybiAtMTsKKwltYXNrLT5z
X2FkZHIgPSAod2lkID09IDAgPyAwIDogaHRvbmwofjAgPDwgKDMyIC0gd2lkKSkpOworCXJldHVy
biAwOworfQorCiBzdGF0aWMgdm9pZAogZmlsbF9pcChzdHJ1Y3QgaW5fYWRkciAqaXBubywgc3Ry
dWN0IGluX2FkZHIgKm1hc2ssIGludCAqYWNwLCBjaGFyICoqKmF2cCkKIHsKQEAgLTk2NiwxNCAr
OTg0LDggQEAKIAkJCQkJZXJyeChFWF9EQVRBRVJSLCAiYmFkIG5ldG1hc2sgYGAlcycnIiwgcCk7
CiAJCQkJYnJlYWs7CiAJCQljYXNlICcvJzoKLQkJCQlpZiAoYXRvaShwKSA9PSAwKSB7Ci0JCQkJ
CW1hc2stPnNfYWRkciA9IDA7Ci0JCQkJfSBlbHNlIGlmIChhdG9pKHApID4gMzIpIHsKKwkJCQlp
ZiAoZmlsbF9uZXRtYXNrKG1hc2ssIHApIDwgMCkKIAkJCQkJZXJyeChFWF9EQVRBRVJSLCAiYmFk
IHdpZHRoIGBgJXMnJyIsIHApOwotCQkJCX0gZWxzZSB7Ci0JCQkJCW1hc2stPnNfYWRkciA9Ci0J
CQkJCSAgICBodG9ubCh+MCA8PCAoMzIgLSBhdG9pKHApKSk7Ci0JCQkJfQogCQkJCWJyZWFrOwog
CQkJZGVmYXVsdDoKIAkJCQltYXNrLT5zX2FkZHIgPSBodG9ubCh+MCk7CkBAIC05OTQsNyArMTAw
Niw3IEBACiAJdV9sb25nIHZhbDsKIAljaGFyICpzOwogCi0JaWYgKHN0ciA9PSAnXDAnKQorCWlm
IChzdHIgPT0gTlVMTCkKIAkJZXJyeChFWF9EQVRBRVJSLCAibWlzc2luZyB1bnJlYWNoYWJsZSBj
b2RlIik7CiAJdmFsID0gc3RydG91bChzdHIsICZzLCAwKTsKIAlpZiAocyAhPSBzdHIgJiYgKnMg
PT0gJ1wwJyAmJiB2YWwgPCAweDEwMCkgewpAQCAtMTM2OSw3ICsxMzgxLDcgQEAKICAgICAgKiBS
ZXR1cm4gaW4gYml0cyBpZiBmbGFncyBpcyBOVUxMLCBlbHNlIGZsYWcgYml0cwogICAgICAqIG9y
IGJ5dGVzIGluIGZsYWdzIGFuZCByZXR1cm4gdGhlIHVuY29udmVydGVkIHZhbHVlLgogICAgICAq
LwotICAgIGlmIChpbmJ5dGVzICYmIGZsYWdzKQorICAgIGlmIChpbmJ5dGVzICYmIGZsYWdzICE9
IE5VTEwpCiAJKmZsYWdzIHw9IEROX1FTSVpFX0lTX0JZVEVTOwogICAgIGVsc2UgaWYgKGluYnl0
ZXMgJiYgZmxhZ3MgPT0gTlVMTCkKIAl2YWwgKj0gODsKQEAgLTE0NTksNiArMTQ3MSwxMCBAQAog
CQkJCQkgICAgIiBtaXNzaW5nIiwgKmF2KTsKIAkJCQlpZiAoKmF2WzFdID09ICcvJykgewogCQkJ
CQlhID0gc3RydG91bChhdlsxXSsxLCAmZW5kLCAwKTsKKwkJCQkJaWYgKCplbmQgIT0gJ1wwJyB8
fCBhID4gMzIpIHsKKwkJCQkJCWVycihFWF9VU0FHRSwgImludmFsaWQgJXMgbWFzayIKKwkJCQkJ
CSAgICAiICVzIiwgYXZbMF0sIGF2WzFdKTsKKwkJCQkJfQogCQkJCQlpZiAoYSA9PSAzMikgLyog
c3BlY2lhbCBjYXNlLi4uICovCiAJCQkJCQlhID0gfjA7CiAJCQkJCWVsc2UKQEAgLTE0NjYsNiAr
MTQ4MiwxMCBAQAogCQkJCQlmcHJpbnRmKHN0ZGVyciwgIiBtYXNrIGlzIDB4JTA4eFxuIiwgYSk7
CiAJCQkJfSBlbHNlIHsKIAkJCQkJYSA9IHN0cnRvdWwoYXZbMV0sICZlbmQsIDApOworCQkJCQlp
ZiAoKmVuZCAhPSAnXDAnKSB7CisJCQkJCQllcnIoRVhfVVNBR0UsICJpbnZhbGlkICVzIG1hc2si
CisJCQkJCQkgICAgIiAlcyIsIGF2WzBdLCBhdlsxXSk7CisJCQkJCX0KIAkJCQl9CiAJCQkJaWYg
KHBhciA9PSAmcGlwZS5mcy5mbG93X21hc2suc3JjX3BvcnQKIAkJCQkgICAgfHwgcGFyID09ICZw
aXBlLmZzLmZsb3dfbWFzay5kc3RfcG9ydCkgewpAQCAtMTQ5MCwyOSArMTUxMCw0NiBAQAogCQkJ
fSAvKiBlbmQgZm9yICovCiAJCX0gZWxzZSBpZiAoIXN0cm5jbXAoKmF2LCAicmVkIiwgc3RybGVu
KCphdikpCiAJCSAgICB8fCAhc3RybmNtcCgqYXYsICJncmVkIiwgc3RybGVuKCphdikpKSB7CisJ
CQljaGFyICplcDsKIAkJCS8qIFJFRCBlbmFibGVkICovCiAJCQlwaXBlLmZzLmZsYWdzX2ZzIHw9
IEROX0lTX1JFRDsKIAkJCWlmICgqYXZbMF0gPT0gJ2cnKQogCQkJCXBpcGUuZnMuZmxhZ3NfZnMg
fD0gRE5fSVNfR0VOVExFX1JFRDsKIAkJCWlmICgoZW5kID0gc3Ryc2VwKCZhdlsxXSwgIi8iKSkp
IHsKLQkJCQlkb3VibGUgd19xID0gc3RydG9kKGVuZCwgTlVMTCk7CisJCQkJZG91YmxlIHdfcSA9
IHN0cnRvZChlbmQsICZlcCk7CisJCQkJaWYgKCplcCAhPSAnXDAnKSB7CisJCQkJCWVycihFWF9V
U0FHRSwgImludmFsaWQgdmFsdWUgZm9yIHdfcSIKKwkJCQkJICAgICIgJXMiLCBlbmQpOworCQkJ
CX0KIAkJCQlpZiAod19xID4gMSB8fCB3X3EgPD0gMCkKIAkJCQkJZXJyeChFWF9EQVRBRVJSLCAi
d19xICVmIG11c3QgYmUgIgogCQkJCQkgICAgIjAgPCB4IDw9IDEiLCB3X3EpOwogCQkJCXBpcGUu
ZnMud19xID0gKGludCkgKHdfcSAqICgxIDw8IFNDQUxFX1JFRCkpOwogCQkJfQogCQkJaWYgKChl
bmQgPSBzdHJzZXAoJmF2WzFdLCAiLyIpKSkgewotCQkJCXBpcGUuZnMubWluX3RoID0gc3RydG91
bChlbmQsICZlbmQsIDApOwotCQkJCWlmICgqZW5kID09ICdLJyB8fCAqZW5kID09ICdrJykKKwkJ
CQlwaXBlLmZzLm1pbl90aCA9IHN0cnRvdWwoZW5kLCAmZXAsIDApOworCQkJCWlmICgqZXAgPT0g
J0snIHx8ICplcCA9PSAnaycpCiAJCQkJCXBpcGUuZnMubWluX3RoICo9IDEwMjQ7CisJCQkJZWxz
ZSBpZiAoKmVwICE9ICdcMCcpIHsKKwkJCQkJZXJyKEVYX1VTQUdFLCAiaW52YWxpZCB2YWx1ZSBm
b3IiCisJCQkJCSAgICAiIG1pbl90aCAlcyIsIGVuZCk7CisJCQkJfQogCQkJfQogCQkJaWYgKChl
bmQgPSBzdHJzZXAoJmF2WzFdLCAiLyIpKSkgewotCQkJCXBpcGUuZnMubWF4X3RoID0gc3RydG91
bChlbmQsICZlbmQsIDApOworCQkJCXBpcGUuZnMubWF4X3RoID0gc3RydG91bChlbmQsICZlcCwg
MCk7CiAJCQkJaWYgKCplbmQgPT0gJ0snIHx8ICplbmQgPT0gJ2snKQogCQkJCQlwaXBlLmZzLm1h
eF90aCAqPSAxMDI0OworCQkJCWVsc2UgaWYgKCplcCAhPSAnXDAnKSB7CisJCQkJCWVycihFWF9V
U0FHRSwgImludmFsaWQgdmFsdWUgZm9yIgorCQkJCQkgICAgIiBtYXhfdGggJXMiLCBlbmQpOwor
CQkJCX0KIAkJCX0KIAkJCWlmICgoZW5kID0gc3Ryc2VwKCZhdlsxXSwgIi8iKSkpIHsKLQkJCQlk
b3VibGUgbWF4X3AgPSBzdHJ0b2QoZW5kLCBOVUxMKTsKKwkJCQlkb3VibGUgbWF4X3AgPSBzdHJ0
b2QoZW5kLCAmZXApOworCQkJCWlmICgqZXAgIT0gJ1wwJykgeworCQkJCQllcnIoRVhfVVNBR0Us
ICJpbnZhbGlkIHZhbHVlIGZvciIKKwkJCQkJICAgICIgbWF4X3AgJXMiLCBlbmQpOworCQkJCX0K
IAkJCQlpZiAobWF4X3AgPiAxIHx8IG1heF9wIDw9IDApCiAJCQkJCWVycngoRVhfREFUQUVSUiwg
Im1heF9wICVmIG11c3QgYmUgIgogCQkJCQkgICAgIjAgPCB4IDw9IDEiLCBtYXhfcCk7CkBAIC0x
NTUwLDcgKzE1ODcsMTEgQEAKIAkJCQkJYXYgKz0gMjsKIAkJCQkJYWMgLT0gMjsKIAkJCQl9IGVs
c2UgaWYgKCFzdHJuY21wKCphdiwgImRlbGF5IiwgbGVuKSkgewotCQkJCQlwaXBlLmRlbGF5ID0g
c3RydG91bChhdlsxXSwgTlVMTCwgMCk7CisJCQkJCXBpcGUuZGVsYXkgPSBzdHJ0b3VsKGF2WzFd
LCAmZW5kLCAwKTsKKwkJCQkJaWYgKCplbmQgIT0gJ1wwJykgeworCQkJCQkJZXJyKEVYX1VTQUdF
LCAiaW52YWxpZCB2YWx1ZSIKKwkJCQkJCSAgICAiIGZvciBkZWxheSAlcyIsIGF2WzFdKTsKKwkJ
CQkJfQogCQkJCQlhdiArPSAyOwogCQkJCQlhYyAtPSAyOwogCQkJCX0gZWxzZSB7CkBAIC0xNTYx
LDExICsxNjAyLDE5IEBACiAJCQkJaWYgKCFzdHJuY21wKCphdiwgIndlaWdodCIsIGxlbikpIHsK
IAkJCQkJcGlwZS5mcy53ZWlnaHQgPQogCQkJCQkgICAgc3RydG91bChhdlsxXSwgJmVuZCwgMCk7
CisJCQkJCWlmICgqZW5kICE9ICdcMCcpIHsKKwkJCQkJCWVycihFWF9VU0FHRSwgImludmFsaWQg
dmFsdWUiCisJCQkJCQkgICAgIiBmb3Igd2VpZ2h0ICVzIiwgYXZbMV0pOworCQkJCQl9CiAJCQkJ
CWF2ICs9IDI7CiAJCQkJCWFjIC09IDI7CiAJCQkJfSBlbHNlIGlmICghc3RybmNtcCgqYXYsICJw
aXBlIiwgbGVuKSkgewogCQkJCQlwaXBlLmZzLnBhcmVudF9uciA9CiAJCQkJCSAgICBzdHJ0b3Vs
KGF2WzFdLCAmZW5kLCAwKTsKKwkJCQkJaWYgKCplbmQgIT0gJ1wwJykgeworCQkJCQkJZXJyKEVY
X1VTQUdFLCAiaW52YWxpZCB2YWx1ZSIKKwkJCQkJCSAgICAiIGZvciBwaXBlICVzIiwgYXZbMV0p
OworCQkJCQl9CiAJCQkJCWF2ICs9IDI7CiAJCQkJCWFjIC09IDI7CiAJCQkJfSBlbHNlIHsKQEAg
LTE2MTUsOSArMTY2NCw4IEBACiAJCWxlbiA9IHNpemVvZihpbnQpOwogCQlpZiAoc3lzY3RsYnlu
YW1lKCJuZXQuaW5ldC5pcC5kdW1teW5ldC5yZWRfbG9va3VwX2RlcHRoIiwKIAkJCSAgICAmbG9v
a3VwX2RlcHRoLCAmbGVuLCBOVUxMLCAwKSA9PSAtMSkKLQotCQllcnJ4KDEsICJzeXNjdGxieW5h
bWUoXCIlc1wiKSIsCi0JCSAgICAibmV0LmluZXQuaXAuZHVtbXluZXQucmVkX2xvb2t1cF9kZXB0
aCIpOworCQkJZXJyeCgxLCAic3lzY3RsYnluYW1lKFwiJXNcIikiLAorCQkJICAgICJuZXQuaW5l
dC5pcC5kdW1teW5ldC5yZWRfbG9va3VwX2RlcHRoIik7CiAJCWlmIChsb29rdXBfZGVwdGggPT0g
MCkKIAkJCWVycngoRVhfREFUQUVSUiwgIm5ldC5pbmV0LmlwLmR1bW15bmV0LnJlZF9sb29rdXBf
ZGVwdGgiCiAJCQkgICAgIiBtdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvIik7CkBAIC0xNjI1LDcg
KzE2NzMsNiBAQAogCQlsZW4gPSBzaXplb2YoaW50KTsKIAkJaWYgKHN5c2N0bGJ5bmFtZSgibmV0
LmluZXQuaXAuZHVtbXluZXQucmVkX2F2Z19wa3Rfc2l6ZSIsCiAJCQkgICAgJmF2Z19wa3Rfc2l6
ZSwgJmxlbiwgTlVMTCwgMCkgPT0gLTEpCi0KIAkJCWVycngoMSwgInN5c2N0bGJ5bmFtZShcIiVz
XCIpIiwKIAkJCSAgICAibmV0LmluZXQuaXAuZHVtbXluZXQucmVkX2F2Z19wa3Rfc2l6ZSIpOwog
CQlpZiAoYXZnX3BrdF9zaXplID09IDApCg==
------=_Part_1324_19878657.1114436061015--