bin/124724: [patch] netstat(1): netstat coredump on -stable
Li yonggang
leeygang at gmail.com
Fri Jan 9 07:30:05 PST 2009
The following reply was made to PR bin/124724; it has been noted by GNATS.
From: "Li yonggang" <leeygang at gmail.com>
To: "Jaakko Heinonen" <jh at saunalahti.fi>
Cc: bug-followup at freebsd.org
Subject: Re: bin/124724: [patch] netstat(1): netstat coredump on -stable
Date: Fri, 9 Jan 2009 15:23:36 +0000
------=_Part_245680_27460863.1231514616637
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
Thanks for your reply.
your analysis is correct for netstat -m -N foo.
but for netstat -m foo.I think it is caused by not checking the input,
which is definitely not a good habit and bug latency.
So a input check should be done as soon as possible.
I combined the fixes of yours and mine to fix these 2 problems.
I don't know why my diff can not show correctly, so I put it below as well:
--- main.c 2009-01-09 15:05:05.000000000 +0000
+++ ../main.c 2009-01-08 13:57:38.000000000 +0000
@@ -341,6 +341,7 @@
int af; /* address family */
int live; /* true if we are examining a live system */
+
int
main(int argc, char *argv[])
{
@@ -463,27 +464,11 @@
default:
usage();
}
- argv += optind;
- argc -= optind;
-
-#define BACKWARD_COMPATIBILITY
-#ifdef BACKWARD_COMPATIBILITY
- if (*argv) {
- if (isdigit(**argv)) {
- interval = atoi(*argv);
- if (interval <= 0)
- usage();
- ++argv;
- iflag = 1;
- }
- if (*argv) {
- nlistf = *argv;
- if (*++argv)
- memf = *argv;
- }
- }
-#endif
-
+ /*
+ * Check if params are parsed correctly
+ * */
+ if(*(argv += optind))
+ usage();
/*
* Discard setgid privileges if not the running kernel so that bad
* guys can't print interesting stuff from kernel memory.
On 1/9/09, Jaakko Heinonen <jh at saunalahti.fi> wrote:
>
> Hi,
>
> On 2009-01-09, Li yonggang wrote:
>> I think the root cause is that netstat does not check if the input is
>> correct. so I think we should add some input checker while remove
>> the
>> BACKWARD_PATIBILITY code, which will lead to use incorrect input.
>
> Did you see my analysis and the patch for the problem?
>
> http://lists.freebsd.org/pipermail/freebsd-bugs/2008-June/031294.html
>
> Your patch doesn't address the "netstat -m -N foo" case. It also removes
> the backward compatibility code. I don't know if that code has any real
> value but I don't see need to remove it to fix this bug.
>
> --
> Jaakko
>
------=_Part_245680_27460863.1231514616637
Content-Type: text/x-diff; name=main.diff
Content-Transfer-Encoding: base64
X-Attachment-Id: file0
Content-Disposition: attachment; filename=main.diff
LS0tIG1haW4uYwkyMDA5LTAxLTA5IDE1OjE3OjUxLjAwMDAwMDAwMCArMDAwMAorKysgLi4vbWFp
bi5jCTIwMDktMDEtMDkgMTU6MTc6MDcuMDAwMDAwMDAwICswMDAwCkBAIC0zNDEsNiArMzQxLDcg
QEAKIGludAlhZjsJCS8qIGFkZHJlc3MgZmFtaWx5ICovCiBpbnQJbGl2ZTsJCS8qIHRydWUgaWYg
d2UgYXJlIGV4YW1pbmluZyBhIGxpdmUgc3lzdGVtICovCiAKKwogaW50CiBtYWluKGludCBhcmdj
LCBjaGFyICphcmd2W10pCiB7CkBAIC00NjMsMzIgKzQ2NCwyMyBAQAogCQlkZWZhdWx0OgogCQkJ
dXNhZ2UoKTsKIAkJfQotCWFyZ3YgKz0gb3B0aW5kOwotCWFyZ2MgLT0gb3B0aW5kOwotCi0jZGVm
aW5lCUJBQ0tXQVJEX0NPTVBBVElCSUxJVFkKLSNpZmRlZglCQUNLV0FSRF9DT01QQVRJQklMSVRZ
Ci0JaWYgKCphcmd2KSB7Ci0JCWlmIChpc2RpZ2l0KCoqYXJndikpIHsKLQkJCWludGVydmFsID0g
YXRvaSgqYXJndik7Ci0JCQlpZiAoaW50ZXJ2YWwgPD0gMCkKLQkJCQl1c2FnZSgpOwotCQkJKyth
cmd2OwotCQkJaWZsYWcgPSAxOwotCQl9Ci0JCWlmICgqYXJndikgewotCQkJbmxpc3RmID0gKmFy
Z3Y7Ci0JCQlpZiAoKisrYXJndikKLQkJCQltZW1mID0gKmFyZ3Y7Ci0JCX0KLQl9Ci0jZW5kaWYK
LQotCS8qCisgICAgLyoKKyAgICAgKiBQYXJhbXMgc2hvdWxkIGJlIHBhcnNlZCB3aXRob3V0IGVy
cm9yLgorICAgICAqICovCisgICAgaWYoKihhcmd2ICs9IG9wdGluZCkpCisgICAgICAgIHVzYWdl
KCk7CisgICAgLyoKKyAgICAgKiBrdm1fb3BlbmZpbGVzKDMpIGRvZXNuJ3QgbWFrZSB1c2Ugb2Yg
bmxpc3RmIHZhbHVlIGlmIG1lbWYgaWYKKyAgICAgKiBudWxsLgorICAgICAqICovCisJaWYobmxp
c3RmJiYhbWVtZikKKyAgICAgICAgZXJyeCgxLCJubyBjb3JlIGZpbGUgc3BlY2lmaWVkIik7Cisg
ICAgLyoKIAkgKiBEaXNjYXJkIHNldGdpZCBwcml2aWxlZ2VzIGlmIG5vdCB0aGUgcnVubmluZyBr
ZXJuZWwgc28gdGhhdCBiYWQKIAkgKiBndXlzIGNhbid0IHByaW50IGludGVyZXN0aW5nIHN0dWZm
IGZyb20ga2VybmVsIG1lbW9yeS4KIAkgKi8KIAlsaXZlID0gKG5saXN0ZiA9PSBOVUxMICYmIG1l
bWYgPT0gTlVMTCk7CisgICAgCiAJaWYgKCFsaXZlKQogCQlzZXRnaWQoZ2V0Z2lkKCkpOwogCg==
------=_Part_245680_27460863.1231514616637--
More information about the freebsd-bugs
mailing list