Bugtraq mailing list archives

Re: RPC protocol problem?


From: Jukka.Ukkonen () csc fi (Jukka Ukkonen)
Date: Thu, 25 Aug 1994 15:03:03 +0300 (EET DST)


Quoting Eric Conrad:
# 
# > I don't have an exploit script, but replacing your portmap with
# > Wietse's would probably not hurt.  Heres the blurb:
# 
# I can Wietse's portmapper easily under SunOS, but other 
# architectures (Solaris, Irix, etc.) will not cooperate.
# 
# Does anyone have any diffs or porting info?  I'll post a summary.

        On Irix-5.2 boxes you have to define at least this...

        #if !defined(SIGCHLD) && defined(SIGCLD)
        #  define SIGCHLD  SIGCLD
        #endif

        Otherwise it will generate a huge amount of zombies (<defunct>
        processes) that have a PTE reserved for their exit status info
        though the child process has completed long ago.

        My reap()-function is also somewhat different from Wietses
        original on Irix-5.2 mostly because I had to re-assign the
        signal handler to ensure I can always catch SIGCHLD.

void
reap()
{
        int status;

        /* while (wait3(&status, WNOHANG, (struct rusage *)NULL) > 0); */
        while (waitpid (-1, &status, WNOHANG) > 0);

        (void) signal (SIGCHLD, reap);
}

        For some reason Irix-5.x seems to need re-initialization of
        the signal handler. Well, this is an old SysV practice. Of
        this I am aware but it still doesn't look like a handy thing
        to my tastes.
        Waitpid() is there just because I wanted to use a POSIX wait-
        family routine when I noticed there was something rotting in
        the SIGCHLD catching.

        Cheers,
                // jau
------
  /    Jukka A. Ukkonen, M.Sc. (tech.) Centre for Scientific Computing
 /__   Internet: ukkonen () csc fi            Tel:  (Home) +358-0-578628
   /   Internet: jau () cs tut fi                   (Work) +358-0-4573208
  v    X.400:    c=fi, admd=fumail, no prmd, org=csc, pn=jukka.ukkonen



Current thread: