*BSD News Article 90384


Return to BSD News archive

Path: euryale.cc.adfa.oz.au!newshost.carno.net.au!harbinger.cc.monash.edu.au!news.mel.connect.com.au!munnari.OZ.AU!news.ecn.uoknor.edu!feed1.news.erols.com!cpk-news-hub1.bbnplanet.com!su-news-hub1.bbnplanet.com!news.bbnplanet.com!newsxfer3.itd.umich.edu!newsxfer.itd.umich.edu!newsrelay.iastate.edu!news.iastate.edu!john
From: john@iastate.edu (John Hascall)
Newsgroups: comp.dcom.sys.cisco,comp.unix.bsd.bsdi.misc
Subject: Re: xtacacsd and bsdi
Date: 5 Mar 1997 14:11:31 GMT
Organization: Iowa State University, Ames, Iowa USA
Lines: 67
Message-ID: <5fjuuj$117$1@news.iastate.edu>
References: <331D2E1C.BBE@dragon.net.au>
NNTP-Posting-Host: pvmon.cc.iastate.edu
Xref: euryale.cc.adfa.oz.au comp.dcom.sys.cisco:52952 comp.unix.bsd.bsdi.misc:6210

Boyd 'Meridian' Currey  <boydc@dragon.net.au> wrote:
}  Over the past few months, I have noticed in our system logs that
}xtacacsd dies every now and then. Origionally, I thought it was
}something coming from the modem or just a intermittent bug in the
}xtacacsd code as I couldn't reproduce the results I was getting.
}However, just recently, I have tracked down the problem to users
}providing an incorrect user name (more specifically, one that
}doesn't exist). Doing this causes xtacacsd to die under inetd with
}the following log message:
}
}Mar  4 22:51:18 inetd[115]: /usr/local/xtacacsd/bin/xtacacsd: exit
}status 0x8b

}We are running BSD O/S 2.0, and xtacacsd 2.0. Has anyone else seen
}this problem? Is there an incompatibilty with xtacacsd and bsdi?
}Surely xtacacsd shouldn't die, and should return a more useful message.

   xtacacsd is dying unexpectedly with SIGSEGV.
   You should be able to use:
       gdb /path/to/xtacacsd /path/to/core-file
       (gdb) where

   to find out where.  Appended below is a little program
   to decode the exit status.

John
------------------------ showexit.c ------------------------------------
#include <stdio.h>
#include <sys/wait.h>

int main (
        int     argc,
        char ** argv
) {
        int     rc;
        int     i;

        for (i = 1; i < argc; ++i) {
                sscanf(argv[i], "%x", &rc);
                printf("return code %d => ", rc);
                if (WIFSTOPPED(rc)) {
                        printf("Stopped by signal %d\n", WSTOPSIG(rc));
                } else if (WIFSIGNALED(rc)) {
#ifdef  WCOREDUMP
                        if (WCOREDUMP(rc)) printf("Core dumped and ");
#endif
                        printf("Killed by signal %d\n", WTERMSIG(rc));
                } else if (WIFEXITED(rc)) {
                        printf("Exited with status %d\n", WEXITSTATUS(rc));
                } else {
                        printf("Status undecipherable!\n");
                }
        }
        return (0);
}
--------------------------- and running it --------------------------------
dsm8: {21} > make showexit
cc -O2 showexit.c -o showexit

dsm8: {22} > ./showexit 8b
return code 139 => Core dumped and Killed by signal 11

-- 
John Hascall, Software Engr.        Shut up, be happy.  The conveniences you
ISU Computation Center              demanded are now mandatory. -Jello Biafra
mailto:john@iastate.edu
http://www.cc.iastate.edu/staff/systems/john/welcome.html  <-- the usual crud