[Raw Msg Headers][Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: mailbox process growong - found (i think)

On Thu, Dec 21, 2000 at 11:15:48PM +0300, Eugene Crosser wrote:
> I think that I found the cause of mailbox processes infinitely growing,
> at least one case.

   What you found is likely real, but not very long-time thing.
   Related stuff was committed on 14 November 2000, and I recall
   you mentioning this growth problem before than that...

   ... but it can also have been that around that time the original
   problem was cured by rewriting header handling (which was terribly
   muddy -- not just somewhat muddy...)

> Now imagine what happens if after a semicolon there is a character that
> is neither blank, tab or newline but is distinguished as delimiter by
> _skip_822atom()?  Right, 's' pointer will not advance!  The thing that
> it pints to will be distinguished as "unknown attribute" around line
> 840 and put into newly allocated chunk of memory.  And again, and again.

  Indeed,  the  _skip_822atom()  is not supposed to be called with
  pointer to Control/DEL/Space.

> In my case, I had mail with carriage return '\r' after semicolon.  Once
> I added '\r' to the "if" operator in line 616 message passed.  But this
> is not a general solution.  Proper fix must guarantee that "s" pointer
> would advance under any circumstances.

  That is just part of it.  Other part is that at the linear-comment
  scanner all kinds of controls must be skipped. (Thus preventing
  arrival into _skip_822atom()  with bad pointer.)

> Eugene
> --
> Eugene Crosser, dep. head of Internet Applications dept., +7 501 787 1000
> "Russia-On-Line", Teleross, Golden Telecom, http://www.online.ru/~crosser/

/Matti Aarnio	<mea@nic.funet.fi>