Date: Wed, 17 Jul 2002 04:30:43 -0700 (PDT) From: Don Lewis <dl-freebsd@catspoiler.org> To: bde@zeta.org.au Cc: arch@FreeBSD.ORG Subject: Re: wiring the sysctl output buffer Message-ID: <200207171130.g6HBUhwr029921@gw.catspoiler.org> In-Reply-To: <200207170755.g6H7t1wr029257@gw.catspoiler.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On 17 Jul, Don Lewis wrote: > On 17 Jul, Bruce Evans wrote: >> I think no time should be spent changing interfaces for this. The >> following hack might work well: use the current code in sysctl_old_user() >> if req->oldlen is not huge. Otherwise, vslock() only the region being >> copied out to and vsunlock() it after the copy so that we don't have to >> keep track of what is vslock()ed. > > That doesn't fix sysctl_kern_function_list(), which grabs a lock and > then walks a linked list, calling SYSCTL_OUT() on each element. Two other places that we have the similar problems are tcp_pcblist() and udp_pcblist(). This code appears to have other problems as well, such as the possibility of looking at stale data on the free list ... To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200207171130.g6HBUhwr029921>