Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 07 Apr 2002 04:50:37 +0000
From:      Dima Dorfman <dima@trit.org>
To:        cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   Re: cvs commit: src/lib/libkvm kvm_proc.c 
Message-ID:  <20020407045042.171DB3E31@bazooka.trit.org>
In-Reply-To: <200204070447.g374lwR75411@freefall.freebsd.org>; from dd@FreeBSD.org on "Sat, 6 Apr 2002 20:47:58 -0800 (PST)"

next in thread | previous in thread | raw e-mail | index | archive | help
Dima Dorfman <dd@FreeBSD.org> wrote:
>   Log:
>   Fix (for the second time) kvm_getprocs() for the case where no
>   processes match the given criteria.  Since revision 1.60 of malloc.c,
>   malloc() and friends return an invalid pointer when given a size of 0.
>   kvm_getprocs() uses sysctl() with a NULL oldp argument to get an
>   initial size, but does not check whether it's 0 before passing it to
>   realloc() (via _kvm_realloc()).  Before the aforementioned malloc()
>   change, this resulted in a minimal allocation made and a valid poitner
>   returned, but now results in an invalid, but non-NULL, pointer being
>   returned.  When this is passed to sysctl(), the latter returns EFAULT
>   (as it should).

The patch committed is admittedly ugly.  If someone knows a cleaner
way to achieve the same thing, please speak up.

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message




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