Re: mutt freezes when fed high character in header
Derek Martin <invalid <at> pizzashack.org>
2007-07-04 19:08:47 GMT
On Wed, Jul 04, 2007 at 06:00:14PM +0200, Christian Ebert wrote:
> * Derek Martin on Wednesday, July 04, 2007 at 10:21:08 -0400:
> > On Wed, Jul 04, 2007 at 03:46:37PM +0200, Christian Ebert wrote:
> >> I understand, and -- layman's speak here -- the change in iconv
> >> might've been in the /library/ not the program, but perhaps there
> >> is some way to catch what the library says from Mutt like old
> >> iconv, the program, does.
> >
> > There isn't. The library becomes part of the program by dynamically
> > linking the code from the library into Mutt's executable program, but
> > mutt has no control over what it does... If the library decides to go
> > into an endless loop,
>
> But iconv, the program, uses the same broken library and doesn't
> go into a loop, or detects the loop in the lib, and error-exits
> immediately.
But this is meaningless. The iconv program exists for one purpose
only: to convert data between two different encodings. Mutt is a much
more complicated program, and it may be that the iconv library is
broken in such a way that when mutt calls its functions, it overwrites
other variables in mutt that cause it to return from a function call
to an address that has unknown code in it, which just happens to be an
endless loop, or who knows what... There are numerous possibilities.
It is very possible that the way the iconv program's data structures
are arranged, being generally fewer and more simplistic, do not
overwrite any return addresses on the stack, or whatever. It doesn't
mean there's no bug; it just means the programmer got lucky. Sort of.
If you've ever taken a computer science class at a school where there
(Continue reading)