[tpop3d-discuss] [PATCH] Corrupted TOP response with PIPELINING and tpop3d 1.5.3

Chris Lightfoot chris at ex-parrot.com
Wed, 2 Feb 2005 17:23:25 +0000


On Wed, Feb 02, 2005 at 06:21:57PM +0100, Martin Blapp wrote:
> 
> Hi,
> 
> > > It seems that the buffer routines had serious bugs and where never
> > > tested with big input. If the sendbuf does reach the place of readpos
> > > we overwrite unread unput and fail. The patch expands the buffer if the
> > > write position in the buffer has reached the read position.
> 
> Sigh,
> 
> There is still a problem somewhere in the code. I'm currently working on
> it.

ok. I don't really understand what your patch is doing --
it's in the wrong function, for a start.

The idea is that you call buffer_expand to ensure that you
have enough contiguous space to write into then you use
buffer_push_bytes to tell it how much you've added.
buffer_push_bytes shouldn't expand the buffer -- that's
buffer_expand's job.

so the bug is presumably in buffer_expand, not
buffer_push_bytes.

-- 
``I need an immediately distinguishable character...
  so I'll use something that no-one will recognise.'' (maths lecture)