This was a kernel bug indeed. The following commit fixes it; no patches to the
qmail port are needed.

guido       2000/02/28 11:30:27 PST

  Modified files:
    sys/net              if.c
  Log:
  This fixes a problem where the SIOCGIFCONF ioctl goes wrong.  This
  is triggered when qmail is used with INET6 enabled.  The bug
  manifests itself in that the space variable can become negative
  and that in the comparison in the guards of the 2 loops, this was
  not noticed because sizeof() returns an unsigned and thus the signed
  variable gets promoted to unsigned. I decided not to make space
  unsigned because I think we should guard against this from happening.
  Thus panic() in case space becomes negative.

  Approved by:  jkh

  Revision  Changes    Path
  1.85      +10 -2     src/sys/net/if.c

-- 
Jos Backus                          _/ _/_/_/  "Reliability means never
                                   _/ _/   _/   having to say you're sorry."
                                  _/ _/_/_/             -- D. J. Bernstein
                             _/  _/ _/    _/
[EMAIL PROTECTED]  _/_/  _/_/_/      use Std::Disclaimer;

Reply via email to