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>
