[gnutls-dev][PATCH] inappropriate buffer check in
_gnutls_io_read_buffered
Ian Peters
itp@ximian.com
Thu Mar 6 17:13:01 2003
On Thu, 2003-03-06 at 03:34, Nikos Mavroyanopoulos wrote:
> On Wed, Mar 05, 2003 at 05:50:56PM -0500, Ian Peters wrote:
>
> > Hi,
> > I'm integrating GnuTLS support into our internal HTTP transfer library,
> > and I was running into some problems with UNEXPECTED_PACKET_LENGTH
> > errors. I eventually tracked these down to one place, in
> > _gnutls_recv_int, which calls _gnutls_io_read_buffered.
> > The first check in that function verifies that the received packet isn't
> > larger than the MAX_RECV_SIZE, but the third condition appears to be
> > bogus. Specifically, _gnutls_io_read_buffered will be recalled in cases
> > where GNUTLS_E_AGAIN, which lead to the function incorrectly returning
> > GNUTLS_E_INVALID_REQUEST. The attached patch seems to fix the issue.
> Hello Ian.
> I've quite changed that patch. Does the attached also solve the problem?
With a little massaging to apply cleanly to my 0.8.3 tree, it works
perfectly, thanks.
FWIW, if you edit any of your source in lib/ or libextra/ of a
distributed gnutls tarball, you have to comment out the all-local target
in the Makefile to get it to stop trying to build the docs, as it's
looking for ../doc/scripts/gdoc, which isn't distributed.
Ian