Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 12 Oct 1996 10:15:54 +0200
From:      Poul-Henning Kamp <phk@critter.tfs.com>
To:        Gary Jennejohn <Gary.Jennejohn@munich.netsurf.de>
Cc:        freebsd-current@FreeBSD.org
Subject:   Re: invalid return value from sysctl_kern_proc ? 
Message-ID:  <3180.845108154@critter.tfs.com>
In-Reply-To: Your message of "Fri, 11 Oct 1996 23:04:19 -0000." <199610112304.XAA06498@peedub.gj.org> 

next in thread | previous in thread | raw e-mail | index | archive | help

In message <199610112304.XAA06498@peedub.gj.org>, Gary Jennejohn writes:
>Poul-Henning Kamp writes:
>>In message <199610111957.TAA05925@peedub.gj.org>, Gary Jennejohn writes:
>[cruft deleted]
>>>I ask because sysctl isn't returning an error when I try to get the proc
>>>struct for a non-existent process. Seems to me that it should.
>>
>>Well, it does, you don't get any data back.
>>
>>sysctl doesn't return error for things in the data domain it handles,
>>only errors about the handling.
>>
>
>thanks alot, Poul-Henning !
>
>this means that this code from kvm_getprocs in libkvm is wrong.
>
>	if (size % sizeof(struct kinfo_proc) != 0) {
>		_kvm_err(kd, kd->program,
>			"proc size mismatch (%d total, %d chunks)",
>			size, sizeof(struct kinfo_proc));
>		return (0);
>	}
>
>sysctl will set size = 0 if it can't find the requested data. This should
>probably read
>
>	if (!size || size % sizeof(struct kinfo_proc) != 0) {
>            ^^^^^^^
>
>I used the code from libkvm, which didn't work as I expected it to.

No, that would be wrong.  You would get the "proc size mismatch" message
then for the case of "process not found" that would be wrong.

--
Poul-Henning Kamp           | phk@FreeBSD.ORG       FreeBSD Core-team.
http://www.freebsd.org/~phk | phk@login.dknet.dk    Private mailbox.
whois: [PHK]                | phk@ref.tfs.com       TRW Financial Systems, Inc.
Future will arrive by its own means, progress not so.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3180.845108154>