Date: Tue, 6 Dec 2011 11:30:14 GMT From: "Poul-Henning Kamp" <phk@phk.freebsd.dk> To: freebsd-bugs@FreeBSD.org Subject: Re: kern/163076: It is not possible to read in chunks from linprocfs and procfs. Message-ID: <201112061130.pB6BUE4d070215@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: "Poul-Henning Kamp" <phk@phk.freebsd.dk> To: Jaakko Heinonen <jh@FreeBSD.org> Cc: Petr Salinger <Petr.Salinger@seznam.cz>, bug-followup@FreeBSD.org Subject: Re: kern/163076: It is not possible to read in chunks from linprocfs and procfs. Date: Tue, 06 Dec 2011 11:20:09 +0000 In message <20111205214201.GA37871@jh>, Jaakko Heinonen writes: >On 2011-12-05, Poul-Henning Kamp wrote: >> Sbufs were designed to have "latching error semantics" and any errors >> should not be cleared by sbuf_finish() for exactly that reason. > >Shouldn't sbuf_finish() then check s->s_error before appending the >trailing '\0' and setting the SBUF_FINISHED flag? The problem in >question wasn't caught earlier because sbuf_finish() happily finishes >the buffer even if it has an error. I belive the code is written so that there is always reserved space for the final '\0' sbuf_finish() should finish _any_ sbuf, and return zero only if the finished buffer is fully OK. I belive it does that, if not its a bug. The intent is that you don't have to check for errors more than one place: sbuf_finish() -- Poul-Henning Kamp | UNIX since Zilog Zeus 3.20 phk@FreeBSD.ORG | TCP/IP since RFC 956 FreeBSD committer | BSD since 4.3-tahoe Never attribute to malice what can adequately be explained by incompetence.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201112061130.pB6BUE4d070215>