Date: Fri, 9 Dec 2011 16:10:13 GMT From: Petr Salinger <Petr.Salinger@seznam.cz> To: freebsd-bugs@FreeBSD.org Subject: Re: kern/163076: It is not possible to read in chunks from linprocfs and procfs. Message-ID: <201112091610.pB9GADbp083520@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
The following reply was made to PR kern/163076; it has been noted by GNATS. From: Petr Salinger <Petr.Salinger@seznam.cz> To: mdf@FreeBSD.org Cc: Jaakko Heinonen <jh@FreeBSD.org>, =?ISO-8859-15?Q?Dag-Erling_Sm=F8rgrav?= <des@des.no>, Poul-Henning Kamp <phk@phk.freebsd.dk>, bug-followup@FreeBSD.org Subject: Re: kern/163076: It is not possible to read in chunks from linprocfs and procfs. Date: Fri, 9 Dec 2011 17:18:00 +0100 (CET) <CAMBSHm_H95zv48t9x2Whxb-wP5wp36TNCeOY6tUX-vSVAsPbPQ@mail.gmail.com> User-Agent: Alpine 2.02 (LRH 1266 2009-07-14) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-FELK-MailScanner-Information: X-MailScanner-ID: pB9G4r01051652 X-FELK-MailScanner: Found to be clean X-FELK-MailScanner-SpamCheck: not spam, SpamAssassin (not cached, score=-1.12, required 6, BAYES_00 -1.90, FREEMAIL_FROM 0.00, SPF_NEUTRAL 0.78) X-FELK-MailScanner-From: petr.salinger@seznam.cz X-FELK-MailScanner-To: bug-followup@freebsd.org, des@des.no, jh@freebsd.org, mdf@freebsd.org, phk@phk.freebsd.dk X-FELK-MailScanner-Watermark: 1324051494.72495@1Eu3fJUhMt52tBWic+21fw X-Spam-Status: No >> As I wrote existing code depends on sbuf_len() to return the actual >> length regardless of the error status after sbuf_finish(). I am not >> willing to through all code using sbufs to check where it causes >> problems. phk@ asserts that r222004 is correct. > > What is causing sbuf to have an error in the first place? The size of > flies in /proc are generally small and malloc(3) errors are rare. In this particular case, the userland wants to read first n bytes, the sbuf is allocated as fixed for n bytes. The first n bytes are generated and correctly stored in sbuf, for the rest bytes, there is no space in sbuf, but these bytes are not needed later anyway. In stable-8, sbuf_data(sb) point to data, the sbuf_len(sb) returns number of stored bytes. In stable-9, sbuf_data(sb) point to data, the sbuf_len(sb) returns -1. Petr
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201112091610.pB9GADbp083520>