Christoph,
        I don't think that this is causing a problem, but I'm looking
through send_selector and I noticed this line (204):
    if (++calls_nr == (calls_allocated - 1))
      calls = realloc(calls, sizeof(struct calls_struct) * (calls_allocated
*= 2));

Now, from man realloc:
       realloc() returns a pointer to the newly allocated memory,
       which is suitably aligned for any kind of variable and may
       be different from ptr, or NULL if the request fails or  if
       size  was  equal  to  0.   If realloc() fails the original
       block is left untouched - it is not freed or moved.

I.e. realloc can fail and this is never checked for.  If it does, this code
will result in a segfault.  Of course, It's primarily going to fail when
there isn't enough memory to do this, so it might be considered viable to
not handle this error condition, but it would seem nicer to handle it
gracefully.
        -Chris

-- 
[EMAIL PROTECTED]
"If I had had more time I would have written a shorter letter." - Pascal
Linux Programs: http://cs.alfred.edu/~lansdoct/linux/
Linux - Get there. Today.
Evil Overlord Quote of the Day (www.eviloverlord.com):
99. Any data file of crucial importance will be padded to 1.45Mb in size.

Reply via email to