[PATCH] sbin/ipfw fixes (final)

看板DFBSD_submit作者時間20年前 (2005/04/26 02:01), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
------=_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--
文章代碼(AID): #12RJ2H00 (DFBSD_submit)