Commit Graph

2383 Commits

Author SHA1 Message Date
Bruce Evans
48ee759d59 Fixed misapplied patch in rev.1.2. A loop continuation test was outside
the loop.  This usually caused most of the output to be skipped.
1997-01-14 10:30:45 +00:00
Jordan K. Hubbard
1130b656e5 Make the long-awaited change from $Id$ to $FreeBSD$
This will make a number of things easier in the future, as well as (finally!)
avoiding the Id-smashing problem which has plagued developers for so long.

Boy, I'm glad we're not using sup anymore.  This update would have been
insane otherwise.
1997-01-14 07:20:47 +00:00
Jordan K. Hubbard
a1fcb52813 Correct a problem which broke +DISPLAY file handling. 1997-01-13 10:14:26 +00:00
Peter Wemm
fbc2342cca Implement minimal login class support (ie: does a setusercontext()).
Enabled by defining LOGIN_CAP in Makefile, on by default.
1997-01-13 02:52:30 +00:00
Jordan K. Hubbard
60191fe961 Add more protection when running as init and don't do stupid things.
Fix looping in fixit cdrom selection by adding a missing break.
Move unmount of cdrom down to proper place.
1997-01-12 11:13:43 +00:00
Bill Paul
1f552b61b8 Ack. When I moved the getsockopt() calls, I forgot to move the lines
that initialize the getsockopt() args (type and len) too.
1997-01-12 08:18:17 +00:00
Bill Paul
24ec979b41 - Save parent pid and check current pid against it upon entry to
terminate(). This makes doubly sure we don't trip the SIGTERM handler
  in a child process. Suggested by: phk.

- It's int main(argc, argv), not void main(argc, argv), gosh darn it.
1997-01-12 02:48:09 +00:00
Bill Paul
341460c3b5 Correct two bugs:
- If a child receives a SIGTERM, it will call the terminate() function
  and end up doing the shutdown procedurs that should really only be
  done by the parent. Set the SIGTERM behavior back to SIG_DLT in the
  child after fork()ing.

- If the parent fails to read data back from the child because the
  child has exited, it will call rpc_received() with bogus tdata that
  can cause the parent to SEGV. Make handle_children() detect this
  condition correctly and handle it sanely.

*sigh* Another 2.2 candidate.
1997-01-11 17:16:18 +00:00
Peter Wemm
d5c3a37026 This is purely a bandaid to lower the risk of running out of slots
for the local interfaces.  It's not uncommon to have >32 interfaces
these days.  This is a temporary patch until it's fixed to use sysctl
or whatever.
1997-01-11 09:21:29 +00:00
Joshua Peck Macdonald
f95f08edb3 Still going. 1997-01-11 05:41:39 +00:00
Nate Williams
11f1a97fce The 2.2-Beta version doesn't have the brackets after the if statement.
This has the effect of making every link a "passthrough" which means the
TCP or UDP port won't be freed after link deletion -- so there could be
eventual port exhaustion if the program were allowed to operate long
enough.

Submitted by:	Charles Mott <cmott@srv.net>
1997-01-10 08:32:05 +00:00
Warner Losh
99c02d39bc Fix many buffer overruns in the code. Specifically, disallow ExpandString
to be used to expand things beyond the size of the buffer passed in.  Also
do a general cleanup of sprintf -> snprintf as well as strcpy and strncat
safety.  Also expand some buffers to allow for the largest possible data
that might be used.

This is a 2.2 candidate.  However, it needs to be vetted on -current
since little testing has been done on this due to my lack of PPP on
this machine.

Reviewed by:	Jordan Hubbard, Peter Wemm, Guido van Rooij
1997-01-10 07:53:28 +00:00
Mike Pritchard
34cf430230 Add a man page for mixer(8). 1997-01-10 06:33:13 +00:00
Bruce Evans
5d2c7b5b1f Fixed DPADD (don't put -L in it). 1997-01-10 05:24:55 +00:00
Bruce Evans
248e6ea0a3 Oops, the last change added an extra ${LIBSCRYPT} to ${DPADD}, but
it should have reordered the existing one (so that ${DPADD} can be
compared with ${LDADD}).

Use ${} consistently.
1997-01-10 05:18:23 +00:00
Bruce Evans
7afeece433 Use ${} consistently. 1997-01-10 05:18:02 +00:00
Mike Pritchard
4fc96a56f5 Fix a couple of typos in a comment and in the usage output. 1997-01-09 07:36:14 +00:00
Mike Pritchard
c0d4d042e9 Fix some formatting problems. Closed PR# 2377.
Pointed out by: David O'Brien
1997-01-08 06:42:27 +00:00
Bill Paul
9c171de035 yp_server.c:
- Fail YPPROC_ALL requests when we hit the child process limit. This
  is a little harsh, but it helps prevent the parent from blocking
  and causing other requests to time out.

yp_dnslookup.c:
- Check for duplicate RPC transaction IDs that indicate duplicate
  requests sent due to RPC retransmissions. We don't want to send
  a second DNS request for the same data while an existing request
  is in progress.

- Fix small formatting bogon in snprintf() in yp_async_lookup_addr().
1997-01-07 06:07:21 +00:00
Nate Williams
9c45d91e00 Fix typo I introduced in the DEBUG code last night. 1997-01-06 17:12:00 +00:00
Jordan K. Hubbard
fb25893d57 Add extra tweak for -current compilation and some debugging. 1997-01-06 11:32:44 +00:00
Jordan K. Hubbard
29d851f6c2 Do a better job of CDROM detection.
Use consistent spelling throughout.
Remove unmount in fixit_common() since that's bogus in the CDROM case and
properly "shut down" the media device instead.
1997-01-06 11:10:25 +00:00
Nate Williams
16a960917f - A pass at staticizing things.
- Try to have all output go through the routines in util.c [logerr(),
  log_1s(), die()]
- Add *some* code in util.c to allow pccardd to run out of sysinstall.

Submitted by: Mostly me, but some by Tatsumi Hosokawa <hosokawa@jp.FreeBSD.org>
1997-01-06 08:35:06 +00:00
Nate Williams
dc9d5eda2a Alphabetize the sources in the Makefile (this will help us to sync with
the Nomad sources in the future).
1997-01-06 08:11:23 +00:00
Bruce Evans
856a02a96f Updated DPADD to match LDADD. 1997-01-06 07:05:08 +00:00
Bill Paul
cb73ffc8b7 Eek: the 'check for / in map names' test I added a while back detects
slashes in map names but doesn't return failure if it finds them. Add
missing return(1) to fix this.
1997-01-06 06:27:55 +00:00
Nate Williams
3a9b8d5000 Remove an un-needed static declaration. 1997-01-06 06:09:13 +00:00
Nate Williams
e46ea891b4 Re-write the driver to use getopt(), add the new display suspend
function of the kernel, and other assorted misc. cleanups.

Submitted by:	nate & HOSOKAWA, Tatsumi <hosokawa@jp.FreeBSD.org>
1997-01-06 06:04:42 +00:00
David Nugent
f1d684fad9 Adds optional NIS passwd file updating and optionally rebuilding
NIS maps.

Suggested by:	Peter Wemm
1997-01-05 07:15:37 +00:00
David Nugent
c7fefa0352 Remove duplicated #include. 1997-01-05 04:54:24 +00:00
David Nugent
9d8caa0abd Fix reference /etc/acct/pw.conf -> /etc/pw.conf.
Pointed-Out-By: Peter Wemm.
1997-01-05 04:05:22 +00:00
Stephen McKay
e06d6c7b85 Fix a couple of typos.
Safe for 2.2.
1997-01-04 16:12:06 +00:00
Jordan K. Hubbard
719de2bced Clean up device handling WRT slip and ppp devices. An incomplete transition
from one convention to another had things pretty fouled up in here.
1997-01-04 13:29:10 +00:00
Jordan K. Hubbard
6befaa491c Add a few strategic screen clears in network setup.
Disable saving of SCSI device parameters in userconfig saving in hopes
of working around a reported problem in the no-device case; there's no
point in saving this information here anyway.

2nd patch submitted-by:  "Eric L. Hernes" <erich@lodgenet.com>
1997-01-04 12:36:39 +00:00
Garrett Wollman
702a1d0148 Update to match changes in <net/if.h>. 1997-01-03 20:19:50 +00:00
Jordan K. Hubbard
e960bb4911 Unlink LogName before attempting to open it. Since we now have a lovely
bug in syslogd which causes it to die after random amounts of time (widely
reported), this at least allows the administrator to easily restart it
without wondering why it simply exits again each time.
1997-01-03 07:13:20 +00:00
Jordan K. Hubbard
a686b628ba Adjust the maximum displayed length.
Submitted-By: Tatsumi Hosokawa <hosokawa@mt.cs.keio.ac.jp>
1997-01-03 06:41:41 +00:00
Jordan K. Hubbard
e5b09b7d10 Do something I've wanted to do for quite some time - collapse all the
common layout code into some work functions and make all the layout-using
routine adopt them.  Also reorganize includes and generally clean up.
1997-01-03 06:32:39 +00:00
David Nugent
f2400d4658 Implemented /home -> /usr/home symlink kludge.
If home basedir would be created in the root partition, create
it under /usr instead, and symlink /basedir -> /usr/basedir.
1997-01-03 04:42:18 +00:00
Jordan K. Hubbard
434a0eeb38 1. Correct bogon in cdromInit when running multi-user which took cdrom offline
if wrong version.
2. Make sure network device is initialized in ftpInit
3. Eliminate bogus size values in the menus.  For now, we'll have to admit
   that nobody's added it up yet.  In the future, these menus should be
   build dynamically anyway, not declared static.
4. Add more debugging to networking code to chase the mystery ppp device
   problem.
1997-01-01 12:36:09 +00:00
Peter Wemm
6c9cfdd2f1 Remove dmalloc here too. 1997-01-01 09:30:13 +00:00
Jordan K. Hubbard
95183e1c42 Include ns_udp.c here too. 1997-01-01 05:17:23 +00:00
Bruce Evans
015a0dc2e4 Use ${COPY} instead of -c for installing non-source files. 1997-01-01 04:22:23 +00:00
David E. O'Brien
1a728844c1 Added the package catagories astro, chinese, mbone, and vietnamese;
along with applicable descriptions.
1996-12-31 14:37:06 +00:00
Peter Wemm
fc7f1f8f58 Add two missing links (hoststat/purgestat) 1996-12-31 12:38:57 +00:00
Mike Smith
8c0e9645ab Cosmetic fix for pppd; login() updates both utmp and wtmp, so don't
call logwtmp() again ourselves.  This avoids 'last' showing duplicate
logins.

Submitted by:	Daniel O'Callaghan <danny@hilink.com.au>
1996-12-31 01:17:07 +00:00
Peter Wemm
ae5fc38127 Make the select() call work like the others in the system.. ie: don't
assume that the timeval will be preserved.  As the man page says:
".. it is unwise to assume that the timeout value will be unmodified
by the select() call."  This happens on Linux and on my system at least.
1996-12-30 18:51:59 +00:00
Peter Wemm
09dfbc4024 Fix harmless bug found by new pointer-to-function prototypes. 1996-12-30 15:32:43 +00:00
Peter Wemm
08bdf9d1a9 Fix problem caused by new prototypes. Cast object to (caddr_t) as
expected.
1996-12-30 15:31:26 +00:00
David Nugent
39791ab333 1) Base home directory is created if it does not already exist if
useradd -m or useradd -D -b are used.
2)	Hyphen allowed in username if not first character. Fix trivial
	bug in error fmt string.
3)	/etc/skeykeys updating changed to do 'inplace' update, commenting
	out a username rather than removing it completely.
1996-12-30 11:52:34 +00:00
Jordan K. Hubbard
33bdf4c4ae Remove breakage of 1.8.2.2, choose slightly better character for quit. 1996-12-30 09:01:50 +00:00
Wolfram Schneider
d26d5268ed Allow dash -' (except for first char) and underscore _' in usernames.
pointed out by: max
1996-12-29 21:56:31 +00:00
Wolfram Schneider
9a43d0d77b remove group limits checks 1996-12-29 15:06:52 +00:00
Wolfram Schneider
c84f83e0c2 increase username length limit to 16 1996-12-29 15:05:19 +00:00
Jordan K. Hubbard
18926d84a6 Support the use of the 2nd CDROM as a fixit aid. Also put the EHS
into a submenu in case you need to start it again (or at some other point
in the installation).

Submitted-By: joerg
1996-12-29 05:51:40 +00:00
Jordan K. Hubbard
38597f2be6 Add a "catpages" distribution for the catman stuff.
Submitted-By: joerg
1996-12-29 05:28:41 +00:00
Peter Wemm
619b759747 Allow an optional setting to specify a .cf file to be built and installed
into /etc during the sendmail build.  Not for the feint hearted.
(I have been using something like this for some time since I only ever
 edit my system's .mc file)
1996-12-28 18:11:08 +00:00
Peter Wemm
4a4550eb01 Use the label that Bruce suggested, it seems the src/etc/Makefile "helpers"
are all prefixed with "etc-".
1996-12-28 18:02:06 +00:00
Peter Wemm
9ced612d99 Add a hook for installing the /etc/sendmail.cf file
Submitted by: bde
1996-12-28 17:57:28 +00:00
Poul-Henning Kamp
35c40fc2fa Be a little less fatalistic in case of problems.
Reviewed by:	phk
Submitted by:	wosch
1996-12-28 13:50:34 +00:00
Warner Losh
2519fdb867 Fix various buffer overflow cases in sliplogin. These might have been
able to be exploited, or might not.  However, it is better to be safe
than sorry.

Definitely a 2.2 fix, and a -stable if there is someone to commit it.

Reviewed by:	Jordan Hubbard <jkh@freebsd.org>
Submitted by:	Marc Slemko
1996-12-27 05:49:51 +00:00
Peter Wemm
d7b025c3ae Tidy up the generated config.c file. Use #include "opt_config.h", comment
out text after #endif line, add missing \n at end of file, only install new
config.c if it's different to the last one which preserves the timestamp.
1996-12-26 23:40:32 +00:00
Mike Pritchard
f52a35b581 Fix some spelling errors.
Jordan, I'll let you merge this into 2.2o that I don't
stomp on you.
1996-12-26 21:53:11 +00:00
Jordan K. Hubbard
9f2e984973 Clean up some calls to close(). 1996-12-26 21:03:04 +00:00
Jordan K. Hubbard
0495d47f7e Fix fixit floppy. 1996-12-26 03:32:50 +00:00
Wolfram Schneider
c69a537c8f Sort cross references. 1996-12-26 02:02:31 +00:00
Bill Paul
adc4fa336b More async resolver refinements:
- yp_main.c: Always add the resolver socket to the set of fds
  monitored by select(). It can happen that pending == 0 but we
  still have some data in the socket buffer from an old query.
  This way, the data will be flushed in a timely manner.

- yp_extern.h: remove proto for yp_dns_pending() since we don't need
  it anynmore.

- yp_server.c: call yp_async_lookup_name()/yp_async_lookup_addr()
  functions with the svc_req pointer as an arg instead of the xprt.
  (The svc_req struct includes a pointer to the transport handle,
  and it also has the service version number which the async DNS
  code will need. (see below))

- yp_dnslookup.c:

   o Nuke yp_dns_pending() since we don't need it anymore.
   o In yp_run_dnsq(), swallow up and ignore replies if no requests
     are pending or the ID doesn't match any of the IDs in the queue.
   o In yp_send_dns_reply(), we assume that we will always be
     replying to an NIS v2 client. While this will probably always
     be the case, we do support the v1 'match' procedure, and it
     has a different result struct than v2. For completeness,
     support replying to both NIS v1 and v2 clients.
   o Update the queue entry structure to include a member to
     keep track of the NIS version number.
   o Have yp_async_lookup_name/addr() extract the version number
     from the svc_req structure and save it with the queue entry
     for yp_send_dns_reply() to inspect later.
   o Add some comments.
1996-12-25 18:10:35 +00:00
Bill Paul
926f037af9 Fix some bugs:
- Don't dereference a NULL hostent pointer (if T_PTR lookup fails).

- Today I asked myself: "Self, you wrote this nifty async resolver
  that does a great job handling delayed replies to clients using
  the UDP transport, and the yplib code in libc always uses UDP
  (except for yp_all()). But what if some dork makes a DNS lookup using
  TCP?" Being the only dork on hand at the time, I tried it and was
  enlightened. As I suspected, my transaction ID frobbing hacks cause
  fireworks if called on a TCP transport handle (duh: the structures
  are different). Fix: check the type of socket in xprt->xp_sock using
  getsockopt() and don't use svcudp_get_xid() and svcudp_set_xid() for
  anything except SOCK_DGRAM sockets. (Since accept() gives you a
  new socket for each connection, the transaction ID munging isn't
  needed for TCP anyway.)
1996-12-24 02:44:52 +00:00
Wolfram Schneider
13608f6661 comma typos 1996-12-23 23:09:55 +00:00
David Nugent
b5cc56ab27 Correct file modes on updated /etc/skeykeys. 1996-12-23 02:27:29 +00:00
Mike Pritchard
4c574b956a Some more man page cleanup. 1996-12-23 02:19:12 +00:00
Mike Pritchard
787a18dba6 Minor internal mdoc usage changes. 1996-12-23 00:57:46 +00:00
Mike Pritchard
fefbe220bc Convert to mdoc format. 1996-12-23 00:22:00 +00:00
Mike Pritchard
574d7dc09d Minor style fixes.
I also renamed the adduser "-quit" option to "-quiet", since
it is supposed to be the same as the -s/-silent option,
and -quit must have beena typo.
1996-12-23 00:10:22 +00:00
Bill Paul
180807d214 Big round o changes:
- yp_dblookup.c: Create non-DB specific database access functions.
  Using these allows access to the underlying database functions without
  needing explicit knowledge of Berkeley DB. (These are used only
  when DB_CACHE is #defined. Other programs that use the non-caching
  functions (yp_mkdb, ypxfr, yppush, rpc.yppasswdd) shouldn't notice
  the difference.)

- yp_dnslookup: Implement async DNS lookups. We send our own DNS
  requests using UDP and put the request in a queue. When the response
  arrives, we use the ID in the header to find the corresponsing queue
  entry and then send the response to the client. We can go about our
  business and handle other YP requests in the meantime. This way, we
  can deal with time consuming DNS requests without blocking and without
  forking.

- yp_server.c: Convert to using new non-DB-specific database access
  functions. This simplifies the code a bit and removes the need for
  this module to know anything about Berkeley DB. Also convert the
  ypproc_match_2_svc() function to use the async DNS lookup routines.

- yp_main.c: tweak yp_svc_run() to add the resolver socket to the
  set of descriptors monitored in the select() loop. Also add a
  timeout to select(); we may get stale DNS requests stuck in the
  queue which we want to invalidate after a while. If the timeout
  hits, we decrement the ttl on all pending DNS requests and nuke
  those requests that aren't handled before ttl hits zero.

- yp_extern.h: Add prototypes for new stuff.

- yp_svc_udp.c (new file): The async resolver code needs to be able
  to rummage around inside the RPC UDP transport handle in order to
  work correcty. There's basically one transport handle, and each time
  a request comes in, the transaction ID in the handle is changed.
  This means that if we queue a DNS request, then we handle some other
  unrelated requests, we will be unable to send the DNS response because
  the transaction ID and remote address of the client that made the DNS
  request will have been lost. What we need to do is save the client
  address and transaction ID in the queue entry for the DNS request,
  then put the transaction ID and address back in the transport handle
  when we're ready to reply. (And then we have to undo the change so
  as not to confuse any other part of the server.) The trouble is that
  the transaction ID is hidden in an opaque part of the transport handle,
  and only the code in the svc_udp module in the RPC library knows how
  to handle it. This file contains a couple of functions that let us
  read and set the transaction ID in spite of this. This is really a
  dirty trick and I should be taken out and shot for even thinking about
  it, but there's no other way to get this stuff to work.

- Makefile: add yp_svc_udp.c to SRCS.
1996-12-22 22:30:58 +00:00
Jordan K. Hubbard
6d14e2a8e6 For /usr/sbin/ppp, you must choose between running ppp in the background or
connecting to a host immediately in the foreground.

I would like to be able to run ppp from a script so that my script can be
sure that it is connected to the 'net before it continues running:

  # Dial up the internet.
  ppp -background myprovider || exit 1

  do-some-net-command

  # Hang up the modem.
  kill -HUP `cat /var/run/ppp.tun0.pid`

Another problem is that the current ppp calls its process id file
`/var/run/PPP.server', which may conflict if you have more than one IP
tunnel interface available.

Closes PR#1469
Submitted by:	Gord Matzigkeit <gord@enci.ucalgary.ca>
1996-12-22 17:29:33 +00:00
Jordan K. Hubbard
17e762ca3d Make CRTSTS selection a runtime option. Closes PR#1392
Submitted by:	Mike McGaughey <mmcg@heraclitus.cs.monash.edu.au>
1996-12-22 17:09:17 +00:00
Mike Pritchard
ab40944758 Convert to mdoc format. 1996-12-21 23:23:11 +00:00
Mike Pritchard
441c428f70 Grr. Fix a spelling error. 1996-12-21 22:22:55 +00:00
Mike Pritchard
ee3704e411 Convert to mdoc format, and rewrite most of the man page
while I was at it.
1996-12-21 22:21:48 +00:00
Mike Pritchard
747f0006ca Convert to mdoc format. 1996-12-21 21:57:21 +00:00
Mike Pritchard
389766f3b2 Convert to mdoc format. 1996-12-21 21:15:09 +00:00
Nate Williams
66041afd67 Compute IP checksums in addition to TCP checksums when necessary in the
new 'aliased' packets.  Note, if the original packet has a bogus cksum,
we will *NOT* re-compute the cksum, therefore the new packet will also
be wrong (but passed on).

Found by:	MartinRenters@awfulhak.demon.co.uk
Reviewed by:	Brian Somers <brian@awfulhak.demon.co.uk>
Submitted by:	Charles Mott <cmott@srv.net>
1996-12-21 18:34:52 +00:00
David Nugent
0970881ff6 1) 200 users per group limitation removed and pw
will handle lines of any length in /etc/group.
2)	Fixed bug with usermod -d not updating user's home
	directory.
3)	Minor formatting display changes/fixes with *show -P.
1996-12-21 15:35:45 +00:00
David Nugent
5e75134d21 Bugfix (cosmetic) for output of generated passwords. 1996-12-20 10:45:39 +00:00
Bill Fenner
7ae3d6826f Merge from release 5.1. 1996-12-20 01:32:12 +00:00
Bill Fenner
0ad74a38f4 This commit was generated by cvs2svn to compensate for changes in r20701,
which included commits to RCS files with non-trunk default branches.
1996-12-20 01:29:00 +00:00
Bill Fenner
54e56efac0 Import the mtrace "5.1" release. The version number jump is because
mtrace is now distributed seperately from mrouted.
1996-12-20 01:29:00 +00:00
Nate Williams
63c6440041 Renamed private copy of ether_aton to my_ether_aton so as to not
conflict with the version in <net/ethernet.h>
1996-12-19 19:33:10 +00:00
David Nugent
d9b711b719 Allow 8-bit characters in the passwd gecos field, and adds a paragraph
to the mangpage explaining the consequences (to be updated at a later
date after login class conf support is added).
1996-12-19 15:22:45 +00:00
Nate Williams
3b92d2dee8 Fixed prototypes of PacketAliasIn/Out. (cosmetic)
Submitted by:	Brian Somers <brian@awfulhak.demon.co.uk>
1996-12-19 00:41:42 +00:00
Warner Losh
d07d447b29 Apply patch in pr 2067 to correct an uninitialized pointer dereference
in tickadj.  Tested briefly here and it it seems to work.

Possible 2.2 candidate.

Submitted by:	Don Lewis <Don.Lewis@tsc.tdk.com>
Closes PR:	2067
1996-12-17 17:21:47 +00:00
Jordan K. Hubbard
7837dcf615 Use RAW, not CBREAK 1996-12-17 15:26:40 +00:00
Stephen McKay
aded5373e9 Correct MLINKS, now that I know how it actually works. 1996-12-17 14:28:09 +00:00
David Nugent
2e3db6fbe0 Changes to password generator: fallback to MD5 generator disabled
(/dev/urandom used by default under FreeBSD), and implemented a
"portable" but less secure generator for other systems.
Add display of expiry/password change dates in -P user display.
1996-12-17 14:15:35 +00:00
David Nugent
a36f769f47 Submitted by: proff@iq.org
Minor fix for security patch.
1996-12-17 01:43:30 +00:00
Paul Traina
bdddbd2f3f Replace my "inane" usage of snprintf to copy strings with strncpy as
used by OpenBSD.  (Quite frankly, I think it's perfectly reasonable to
use snprintf to copy strings, given that the semantics for strncpy()
are utterly idiotic and there is no POSIX sstrncpy().)

While I'm at it, incorporate some of OpenBSD's bugfixes to cron.

NOT for 2.2
1996-12-17 00:55:20 +00:00
Jordan K. Hubbard
3cce01a416 1. Engage brain. 2. Write macro. Previous commit attempted to perform
2 before 1.
1996-12-17 00:00:15 +00:00
Paul Traina
482bfccc70 Close yet another buffer overrun 1996-12-16 18:21:00 +00:00
David Nugent
b7d2ba7cb8 Reviewed by: davidn@blaze.net.au
Submitted by:	proff@iq.org
	Security patch for better random password generation.
1996-12-16 17:37:58 +00:00
Mike Pritchard
94a804c558 Add man page for moused(8). It is basically a rehash of the
usage output from moused, but it is a start for anyone
else who wants to expand on it.

Closed PR# 1552.
1996-12-16 01:05:00 +00:00
Bill Fenner
72f54beaca Add mtest. 1996-12-16 01:01:46 +00:00
Mike Pritchard
ee6dc17bd1 Add the one line description of the man page at the top so
that "whatis" will report something more than just "mtest".
1996-12-15 23:02:48 +00:00
Bill Fenner
cf20f87153 Make mtest build. Write a makefile and a man page. 1996-12-15 21:57:32 +00:00
Bill Fenner
fc3cc3f5cf A multicast testing program, allowing you to join and leave both
IP and ethernet multicast groups.

Obtained from:	Multicast release 3.5
1996-12-15 21:30:02 +00:00
Paul Traina
053edb3c0c Avoid some buffer overrun problems. 1996-12-15 20:39:30 +00:00
Jordan K. Hubbard
50aaa93770 make note of which /etc files need upgrading in installUpgrade rather
than asking the user to keep track of the list himself.
1996-12-15 18:14:37 +00:00
Stephen McKay
147962b004 Documented ctm_dequeue and the new feature of ctm_smail that goes with it.
Expanded the ctm_rmail example usage section.
1996-12-15 15:10:11 +00:00
Joerg Wunsch
833e0176e3 Increase the size of the vector that is allocated for execv(). Jordan
apparently forgot this when adding the password feature.
1996-12-15 11:22:37 +00:00
Jordan K. Hubbard
507372af02 Now that I've got my source tree sorted out, bring all the things
I've been committing into 2.2 directly all this time.
1996-12-14 23:09:10 +00:00
Joerg Wunsch
5bd7b80934 Part #2 of the config cleanup. More aggressive, replaced an NIH
version of strdup() by a macro, killed many calls to strdup(), thus
potentially wasting less malloc'ed space (their args were never be
free()ed desptie despite of being malloc'ed).  Probably still a huge
memory leak at all...  Also killed two totally useless variables.

I've tested it as i could, but wouldn't be surprised if unexpected
problems showed up.  So watch out this space!
1996-12-14 19:53:49 +00:00
Joerg Wunsch
f0b48d9876 Round #1 of cleaning up the config(8) mess. This is only the more
conservative part of the tidyup, like fixing potential buffer overflow
conditions.  It is believed to be safe to go into 2.2.

Pointed out by:	lozenko@cc.acnit.ac.ru (Evgeny A. Lozenko)
1996-12-14 19:44:13 +00:00
Jordan K. Hubbard
d17f0c47d4 Fix some very minor cosmetic cruft I couldn't help tweaking when
I went over the code.

Add shortcuts for addUser and addGroup, documenting same.

Add a password field for adduser and use no-echo string field for it.
This requires my latest libdialog changes (in RELENG_2_2 or -current) to work.
1996-12-14 16:24:01 +00:00
Stefan Eßer
2640db5095 Remove reference to unused variable ncr.ns_async. 1996-12-14 12:53:30 +00:00
Bruce Evans
c08d58eade Moved nonstandard compiler profiling options out of config. Just print
the profiling level in config and decide what to do in makefiles.

Makefile.i386:
Align functions to 16-byte boundaries if profiling is enabled.  This
will allow a fourfold reduction in the size of the profiling buffers.
1996-12-13 12:46:28 +00:00
Jordan K. Hubbard
af3bab3687 700 now. :) 1996-12-12 23:12:44 +00:00
Jordan K. Hubbard
177baf1802 Fix trunctation of domainname. 1996-12-12 22:44:22 +00:00
Jordan K. Hubbard
3cd31ab739 Add some additional smarts for XFree86 configuration.
Fix a bogon I thought I fixed in the last commit.
1996-12-12 22:38:41 +00:00
Jordan K. Hubbard
40e60c63b3 Update these docs to more closely reflect reality. 1996-12-12 20:03:35 +00:00
Jordan K. Hubbard
6258ab4afc smart-alec error checking. 1996-12-12 16:55:37 +00:00
Jordan K. Hubbard
a9f484e520 The infamous IP aliasing code for ppp, modified to work as a runtime option
(otherwise ppp's behavior remains unchanged) and documented by myself,
Steve Sims, Nate Williams, Martin Renters and god-only-knows who else. :-)
Submitted by:	nate
Obtained from:	Charles Mott <cmott@srv.net>
1996-12-12 14:39:47 +00:00
Jordan K. Hubbard
a674766556 Whups, remove relic from close method going away. 1996-12-12 08:36:25 +00:00
Jordan K. Hubbard
0da9521b5a Undo one of my memory optimization hacks - it actually made things more
complicated.
1996-12-12 08:33:38 +00:00
Jordan K. Hubbard
d62f165304 Fix some bogons in my close() handling. 1996-12-12 08:23:51 +00:00
Jordan K. Hubbard
0a0e709620 Cosmetic tweaks, initialize a few variables, fix a reversed conditional. 1996-12-11 19:35:26 +00:00
Jordan K. Hubbard
86767547be Be more efficient in how we use memory (stumbled across while looking for
something else) for attributes and variables.

Remove stack-stomper in sstrncpy().
1996-12-11 18:23:19 +00:00
Joerg Wunsch
669d204645 Update from David, reflecting Wolfram's wishes regarding limitation of
the allowable character set.

Submitted by:	David Nugent
1996-12-11 15:10:47 +00:00
Jordan K. Hubbard
0fd6d431cf Do a few things I've been threatening to do for a long time:
1. Don't use the MSDOSFS code for accessing FreeBSD distribution data.
   Use Robert Nordier's stand-alone DOS I/O library for the purpose.
   It this works as well as Robert says it does, it should drastically reduce
   (or even eliminate) our "I can't install from my DOS partition!" calls.

2. As a result of the above, go to stdio file descriptors for all
   media types.

3. Taking advantage of #2, start using libftpio for FTP transfers instead
   of maintaining our own parallel version of the FTP transfer code.
   Yay!  I ripped something out for a change!

#1 Submitted-By: Robert Nordier <rnordier@iafrica.com>
1996-12-11 09:35:06 +00:00
Joerg Wunsch
db34a7105c Merg-o-matic. 1996-12-11 00:07:19 +00:00
Joerg Wunsch
ad7cf975be Copyright update by the author, to be more in line with our sample
copyright.

Submitted by:	David Nugent
1996-12-10 23:59:04 +00:00
Peter Wemm
5bb4699e9c Revert part of the previous change. syslogd (when logging to ttys)
has always held an open file descriptor.  This allowed logging to
spare virtual consoles and being able to switch to them.

My previous change removed this since all writes were done with ttymsg()
which opens it's own fd, and hence syslogd didn't need it's own fd to
send messages on... but this caused an unexpected behavior change.

This should close PR#2176
1996-12-10 17:52:23 +00:00
Garrett Wollman
628d2ac1b0 Fix up programs which expect <net/if.h> to include <sys/time.h> to instead
do it themselves.  (Some of these programs actually depended on this
beyond compiling the definition of struct ifinfo!)  Also fix up some
other #include messes while we're at it.
1996-12-10 17:11:53 +00:00
Joerg Wunsch
c381383f32 Update to benefit from David's recent changes to pw(8). The most
obvious effects are that most of the automagically chosen defaults
will now be displayed while going through the menu, and an improved
error handling thanks to the more detailed error status reporting.

2.2 fodder, but i'll leave it to Jordan's review.
1996-12-10 02:16:06 +00:00
Joerg Wunsch
9fd0dafc15 Merge from the vendor-branch. 1996-12-10 00:21:28 +00:00
Joerg Wunsch
48aee7f33a Upgrade from the author, reflecting all my wishes resulting out of the
sysinstall use of this tool (plus some bug fixes).

2.2 candidate...

Submitted by:	David Nugent <davidn@nserver.usn.blaze.net.au>
1996-12-09 23:55:27 +00:00
Mike Pritchard
053375e81b Minor spelling/mdoc/style fixes. 1996-12-09 16:44:13 +00:00
Jordan K. Hubbard
a4ba0988d9 Set timeout interval to 0 in ppp so connections don't hang up while
we're doing something lengthy with the disk.
1996-12-09 15:16:36 +00:00
Jordan K. Hubbard
1b62258da5 Add pw to build list - I need it now. :) 1996-12-09 14:53:36 +00:00
Joerg Wunsch
b0b4f32a68 Slightly improve the wording of a ``not yet there'' message. 1996-12-09 14:08:26 +00:00
Joerg Wunsch
d6f907dc7a pw(8) -- a backend utility to manage the user and group databases.
sysinstall's new User&group menu will use it, hence it's a 2.2
candidate despite of providing new functionality.

Submitted by:	David L. Nugent, <davidn@blaze.net.au>
1996-12-09 14:05:35 +00:00
Jordan K. Hubbard
00b69db338 As Paul has just pointed out, much of my strncpy() usage was either
bogus or overly complex and really needed to be done more consistently
and sanely throughout - no question about it.  Done.

Suggested-By: Paul Traina <pst@Shockwave.COM>
1996-12-09 08:22:19 +00:00
Mike Pritchard
256835f230 Minor formatting/style fixes.
Submitted by:	Sandro Sigala <sandro@cat.local.net> as part of PR# 2134
1996-12-09 08:04:55 +00:00
Mike Pritchard
9e9e968a54 Convert to mdoc format.
Submitted by:	Sandro Sigala <sandro@cat.local.net> as part of PR# 2134
1996-12-09 07:20:41 +00:00
Jordan K. Hubbard
3f266859a3 Whups, missed two strcpy()s. 1996-12-09 06:45:03 +00:00
Jordan K. Hubbard
5153026dfc Eliminate great evil in the networking code. That's all I'm gonna say. 1996-12-09 06:37:46 +00:00
Jordan K. Hubbard
325403f959 Add Joerg's user management screen for David Nugent's pw(8) program, something
which will also need to be brought in before this screen will work.

Add some commentary about how the slip startup code is bogus.

Steal Joerg's loop for more properly closing all files and graft it into
the EHS startup.  My loop was functional but more bogus.
1996-12-09 06:02:36 +00:00
Jordan K. Hubbard
ba5555f0e6 Several areas of improvement:
o Incorporate some of Tatsumi's bug fixes.
	o Remove the xperimnt and commerce distribution items; they haven't
	  been actual distributions for awhile.
	o Try to sanitize the device checking code a little more.
	o Cosmetic work on the network code.
1996-12-08 12:27:58 +00:00
Andrey A. Chernov
2f71230e78 Expand username limit to 16 1996-12-07 21:25:12 +00:00
Peter Wemm
e8fce182a6 Update this to what freefall's been running for a day or so. 1996-12-06 11:29:15 +00:00
Nate Williams
680026d67a Added my 'ddial' patches to user-PPP. The new mode tries it's darndest
to keep the link up, so it re-dials whenever it detects the link go
down.  This is useful for 'dedicated' links who use PPP.

It's been used for over a year w/out problems at different sites.
1996-12-03 21:38:52 +00:00
Peter Wemm
691ca30fca Remove file that we don't have any way of using. We don't have the other
Makefiles for other OS's in our tree that this uses when not using bmake.
1996-12-03 06:21:49 +00:00
Peter Wemm
5d72136fb8 Remove file no longer shipped with sendmail 1996-12-03 06:20:18 +00:00
Peter Wemm
91e5dab34f Remove defunct files that are no longer shipped (and don't work with this
version of sendmail any more)
1996-12-03 06:19:51 +00:00
Peter Wemm
dc5a26cc5c Back out rev 1.6, it's in the official source now (a few lines up) 1996-12-03 06:18:11 +00:00
Peter Wemm
589790e627 Merge 8.8.3->8.8.4 changes onto our mainline where we've edited the
file at some point in the past.

Obtained from: Eric Allman <eric@sendmail.org>
1996-12-03 06:15:52 +00:00
Peter Wemm
33cdb0aebd Import sendmail 8.8.4. See RELEASE_NOTES for changes. 1996-12-03 06:07:35 +00:00
Peter Wemm
b4165e3a49 This commit was generated by cvs2svn to compensate for changes in r20103,
which included commits to RCS files with non-trunk default branches.
1996-12-03 06:07:35 +00:00
Bill Paul
4c69e7b9d5 Back out the non-forking YPPROC_ALL stuff. Whatever drugs I was doing
when I came up with this idea weren't strong enough to help me see it
through. If this was a self-contained application and I had complete
control over what data got sent through what socket and when, I might
be able to get everything to work right without blocking, but instead
I have RPC/XDR in between me and the socket layer, and they have their
own ideas about what to do.

Maybe one day I'll go totally mad and figure out the right way to do
this; in the meantime this mess goes on the back burner.
1996-12-03 02:37:39 +00:00
Bill Fenner
7c0ac9472b Fix a typo in the man page (the "-n" flag was added to the synopsis in
a comment).
1996-12-02 16:21:20 +00:00
Jordan K. Hubbard
5009d1be3c I have added a '-n' flag to the watch(8) command. This option
disables the ability to interactively select a new tty.  I have also
removed a check for uid == 0 because it gets in the way of using suid
mode based access control.  Watch (8)is only runnable by root, so this
does not really change things much.

Closes PR#2131

Submitted-By: adrian@virginia.edu
1996-12-02 12:32:46 +00:00
Jordan K. Hubbard
b4a24ca1f0 Don't run routed by default.
Virtually-Demanded-At-Gunpoint-By: joerg
1996-12-02 05:01:02 +00:00
Jordan K. Hubbard
a2a3d9f413 Move configResolv() to *after* the chroot(). This is what was causing
NFS installation to fail the first time.  This will go into 2.2.
1996-12-01 12:27:36 +00:00
Bill Paul
faf215c7ad This commit changes the YPPROC_ALL procecdure so that it handles requests
_without_ using fork().

The problem with YPPROC_ALL is that it transmits an entire map through
a TCP pipe as the result of a single RPC call. First of all, this requires
certain hackery in the XDR filter. Second, if the map being sent is
large, the server can end up spending lots of time in the XDR filter
sending to just the one client, while requests for other clients will
go unanswered.

My original solution for this was to fork() the request into a child
process which terminates after the map has been transmitted (or the
transfer is interrupted due to an error). This leaves the parent free
to handle other requests. But this solution is kind of lame: fork()
is relatively expensive, and we have to keep a cap on the number of
child processes to keep from swamping the system.

What we do now is grab control of the service transport handle and XDR
handle from the RPC library and send the records one at a time ourselves
instead of letting the RPC library do it. We send a record, then go
back to the svc_run() loop and select() on the socket. If select() says
we can still write data, we send the next record. Then we call
svc_getreqset() and handle other RPCs and loop around again. This way,
we can handle other RPCs between records.

We manage multiple YPPROC_ALL requests using a circular queue. When a
request is done, we dequeue it and destroy the handle. We also tag
each request with a ttl which is decremented whevever we run the queue
and a handle isn't serviced. This lets us nuke requests that have sat
idle for too long (if we didn't do this, we might run out of socket
descriptors.)

Now all I have to do is come up with an async resolver, and ypserv
won't need to fork() at all. :)

Note: these changes should not go into 2.2 unless they get a very
throrough shakedown before the final cutoff date.
1996-11-30 22:38:44 +00:00
Jordan K. Hubbard
ab9a6af1c4 Change boolean nature of "router" variable since it's not a boolean
anymore.
Noticed-By: joerg
1996-11-29 23:52:20 +00:00
Poul-Henning Kamp
f8d8dfe86e Try to impreve DD mode.
Try to make 4Mb floppies work again.
1996-11-27 22:52:34 +00:00
Andrey A. Chernov
28c5126cfb Don't show on the screen just securely entered password
(in /etc/adduser.message text)
Sending password by E-mail on local machine is joke in any case
1996-11-27 22:04:55 +00:00
Bill Fenner
a9695b96ac Add -s flag to always supply mapping if known, ignoring the
presence or absence of files in /tftpboot.
1996-11-27 20:45:10 +00:00
Bill Fenner
b60287db00 Make the man page reflect reality. Add BUGS section about DNS.
Logging cleanups (including logging the requestor's MAC address instead
 of the server's).
1996-11-27 20:42:09 +00:00
Stephen McKay
735fa92ade Simplified. Some fts related bugs removed. Made less verbose. The default
number of mail messages sent per run was lowered from 2 to 1.  Why?  Well,
some numbers just give you the warm fuzzies, like zero and one.  Zero isn't
much use here, so I picked my all time favourite, one.
1996-11-27 13:06:51 +00:00
Stephen McKay
37b2250f56 Removed unnecessary locking. Simplified. Tidied. 1996-11-27 12:58:44 +00:00
Jordan K. Hubbard
d8c4fd0c82 Correct some typos relating to PC98 server selection.
Submitted-By: HOSOKAWA Tatsumi <hosokawa@mt.cs.keio.ac.jp>
1996-11-27 12:44:43 +00:00
Joerg Wunsch
4b8d17f492 Open devices read-only to test whether they are available. This
allows to use write-protected tapes...
1996-11-27 01:01:52 +00:00
Andrey A. Chernov
ae2c6adddd Use LC_TIME=C 1996-11-26 08:53:48 +00:00
Andrey A. Chernov
ba0163f6d8 Use LC_TIME=C 1996-11-26 03:41:39 +00:00
Andrey A. Chernov
e11ba3694e Use LC_TIME=C instead of LC_TIME= 1996-11-26 03:31:26 +00:00
Peter Wemm
a66a1e11cf Don't close f->f_file on F_TTY types on error returns from ttymsg() since
it wasn't open in the first place..
1996-11-26 02:35:08 +00:00
Peter Wemm
d486bc8fb9 Make the handling of the /dev/ prefix for tty names more consistant.
ttymsg() insists on them not being there.

Also, since ttymsg() opens the tty "on demand", don't keep an fd open
ourselves.  This would interfere with HUPCL etc.

This should close PR#2103 from <xaa@stack.nl>
1996-11-26 02:24:42 +00:00
Poul-Henning Kamp
bbf432c0d6 bin/1974: core dump from amd when phkmalloc is set to AJ. 1996-11-25 19:36:26 +00:00
Mike Smith
c1abba55d6 Correct the syntax of the example to reflect reality, and note that the
'host:' element is mandatory.
A better fix would involve reworking bootparamd not to require a ':'
in the response string.
1996-11-25 01:52:28 +00:00
John Hay
dbba40ddb7 Slow down the RIP and SAP broadcasts. At least some NW4.x machines can't
handle them back-to-back. (We couldn't either without my ipx receive buffer
enlargement.)
1996-11-24 08:35:23 +00:00
Poul-Henning Kamp
da18dc1a65 Don't dump core on zero-size files. 1996-11-21 15:17:04 +00:00
Poul-Henning Kamp
83c7762d77 Latest reality. 1996-11-20 08:21:27 +00:00
Jordan K. Hubbard
0bf57c683e Got the bugger. Eric's now passing in a hint structure to dbopen()
but forgot to zero the structure first, leaving hinfo.bsize undefined
and causing a loop in __log2().
1996-11-20 07:53:42 +00:00
Wolfram Schneider
42eacfd392 do not print 'illegal shell' for pseudo users news and xten
Submitted by:	 kuku
1996-11-20 01:07:46 +00:00
Bill Paul
7632575be6 Although I got rarpd to work, it was largely through kludgery. Bill
Fenner was kind enough to point out the error of my ways. This incorporates
diffs from him which:

- Keep everything in network order.
- Log the booted ether & ip address, instead of my address on that net
- change several exit()'s to return()'s, so that rarpd continues running
  even if it thinks it's in a weird state.

One small tweak by me: in rarp_bootable(), we have to make sure to
construct 'ipname' in host byte order (if we don't, we have to
specify /tftpboot/<remote IP in hex> with <remote IP in hex> in
network byte order, which is confusing).

Also restored use of <dirent.h> rather than <sys/dir.h> as pointed
out by bde.

Also updated the man page so that the -v flag is documented.

With any luck, I won't have to touch this thing again.
1996-11-19 23:57:06 +00:00
Joerg Wunsch
b0fa330d5f Remove two uninitialized and unused variables that used to cause a
segfault before.
1996-11-19 23:21:52 +00:00
Garrett Wollman
037def9693 Completely re-vamped `tzsetup':
- It no longer attempts to fiddle wall-vs-UTC-in-RTC.  The results
  were just confusing most of the time.

- The program no longer contains a pre-compiled list of timezones
  (compiled by groveling through the tzdata source files for comments
  starting with `ZONE-DESCR').  Now it uses the new `zone.tab' file
  supplied with current versions of the timezone data files, to determine
  the list at run time.  (It also requires the ISO 3166 table  I
  committed some months ago.)

AS A RESULT, this program will NOT work until the new timezone data files
are committed (should happen sometime soon).
1996-11-19 18:09:41 +00:00
Poul-Henning Kamp
fe6aa2730a typo 1996-11-19 11:08:27 +00:00
Bill Paul
5a0da0a5bc Dohw! Left out one important htonl() in update_arptab().
Pointed out by: Bill Fenner
1996-11-18 23:32:55 +00:00
Bill Paul
867de4336b Fix up new rarpd.
This includes the following changes:

- Support for poking ARP entries into the local table is now built
  in, so the arptab.c module I hacked together is no longer needed.

- rarp_process() and rarp_reply() now accept a len argument which is
  passed down from rarp_loop() which tells rarp_reply() exactly how
  long the original RARP frame was. (Usually, it's 60 bytes, which is
  the minimum.) Previously, the length was calculated using the sum
  of sizeof(struct ether_header) + sizeof(struct ether_arp) (plus the
  ethernet frame header, I think). The result was a total packet
  length of 42 bytes. Now, rarp_reply() sends out packets that are
  the same size as those it recieves (60 bytes). This agrees with the
  behavior of rarpd on SunOS (as observed with tcpdump). The unused
  extra bytes are zeroed.
1996-11-18 22:07:41 +00:00
Bill Paul
557201898b This commit was generated by cvs2svn to compensate for changes in r19855,
which included commits to RCS files with non-trunk default branches.
1996-11-18 21:53:21 +00:00
Bill Paul
4bef56e86c Import new version of rarpd from the BPF 1.1 distribution from LBL.
Obtained from: LBL, BPF 1.1 distribution
1996-11-18 21:53:21 +00:00
Peter Wemm
a30a31bb3f put on my flame resistant suit and tempt fate by attempting to fix some of
the races in my previous commits here, and fix some other problems with
syslogd as well.

- if the child process exited early (eg: could not bind to the socket),
  the boot process would hang for 30 seconds.  The parent was not noticing
  that the child had exited.  (my fault)
- when writing to tty devices, instead of treating them like files that
  need \r\n instead of \n, actually use ttymsg() which has specific code
  intended to write to potentially blocking ttys safely.  I had a machine
  lock up last night because /dev/console on a serial port got flow control
  blocked.  Setting comcontrol drainwait fixed everything but syslogd which
  was going into a spin trying to write to the console and completely
  ignoreing everything else.
- fix a couple of nonsensical bits of code while here..  eg: wait3 takes
  a pointer to an int.  There is no sense in declaring it as 'union wait',
  then casting the pointer to (int *), then forgetting about it.
1996-11-18 21:48:29 +00:00
Peter Wemm
39c2b03943 Merge conflicts from 8.8.3 import onto mainline. 1996-11-18 02:34:34 +00:00
Peter Wemm
fcf445de96 Import sendmail-8.8.3 - this contains the official fix to replace the
previous workaround patch that I used.

Obtained from: Eric Allman <eric@sendmail.org>
1996-11-18 02:26:51 +00:00
Peter Wemm
dfae3a83bb This commit was generated by cvs2svn to compensate for changes in r19841,
which included commits to RCS files with non-trunk default branches.
1996-11-18 02:26:51 +00:00
Bill Fenner
31a322801a Update wording of the one message that was in the DIAGNOSTICS section.
Add three other common messages.

This should be in 2.2 to go with the netinet/if_ether.c rewording.
1996-11-17 23:25:17 +00:00
Poul-Henning Kamp
a5c57c4040 Make the case where there is no changes look less fatal. 1996-11-17 08:11:18 +00:00
Wolfram Schneider
901c028ed7 install rmuser, addgroup, rmgroup in /usr/sbin 1996-11-17 03:51:33 +00:00
Joerg Wunsch
eb14881596 Initialize memory obtained by malloc().
Detected by: phkmalloc -AJ
1996-11-16 22:49:02 +00:00