1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-30 12:04:07 +00:00
Commit Graph

547 Commits

Author SHA1 Message Date
Poul-Henning Kamp
139762f2be Install the dlopen.3 manpage. 1995-03-30 06:40:31 +00:00
Andrey A. Chernov
3437da9391 Clear IGNPAR in cfmakeraw() instead of set it. 1995-03-29 19:28:35 +00:00
Doug Rabson
db0770545f Use __tty_fileno instead of STDERR_FILENO when detecting window size
changes
Reviewed by:	Bob Willcox <bob@obiwan.pmr.com>
1995-03-28 22:20:19 +00:00
Jordan K. Hubbard
e36fea798c Tweak a few things just to show how form traversal might work fully.
Fix some spelling errors in the example.c file and make error handling
a little more explanatory.
1995-03-28 10:42:09 +00:00
Jordan K. Hubbard
4fe2ad2c59 Include <strhash.h> instead now. 1995-03-28 10:25:13 +00:00
Jordan K. Hubbard
71e60921ff Fix a missing _hash() to prevent namespace pollution with the db/hash routines.
Grrr.  If the dbhash routines weren't grossly overengineered I wouldn't
even need to do this! :-(

Also now export the hash_stats routine.  Manpage coming RSN - I promise.
1995-03-28 08:41:02 +00:00
Bill Paul
b38bb6d374 Use yp_order() instead of yp_first() in _havemaster() to check for the
presence of the master.passwd.byname map, and remember to free the
returned order value before exiting.
1995-03-27 20:46:40 +00:00
Nate Williams
6fc818e63f Bump the shared library minor # because of the additions of the
strhash() functions.
1995-03-27 20:23:11 +00:00
Andrey A. Chernov
2f69f2f2f3 Remove duplicates: parm rindex & scroll right 1995-03-27 05:13:31 +00:00
Andrey A. Chernov
668326cbc5 Fix bug using CSR for partial scrolling 1995-03-27 01:19:14 +00:00
Andrey A. Chernov
d030a0729f Hash 8bit chars without sign extension 1995-03-26 19:32:24 +00:00
Andrey A. Chernov
626da9c8ba Update info about LC_COLLATE implementation 1995-03-26 18:57:19 +00:00
Jordan K. Hubbard
be01ce9346 change hash.h to strhash.h to match new convention.
Manpage for strhash functions to follow tomorrow.
1995-03-26 10:25:00 +00:00
Jordan K. Hubbard
4796867161 Add the strhash family of routines. They provide a number of features
that the db/hash functions don't, and they're much simpler to use for
low-overhead string hashing.
1995-03-26 10:21:55 +00:00
Paul Richards
62773adf71 Use a hash table to hold all the bindings info rather than a linked list.
Forms now have their own local bindings table so that anything
declared within a form is local to that form. This means you can
have fields of the same name in different forms.

Added inlined attribute setting for strings e.g. "This is \bold bold"

Added entry and exit functions for fields.
1995-03-26 07:44:33 +00:00
Andrey A. Chernov
bc4908f401 Continue of previous fix: eliminate backslashes too. 1995-03-26 00:47:02 +00:00
Andrey A. Chernov
9da94f20f7 Compact entry returned to user:
1) Eliminate spaces and double ':'.
2) Remove duplicated capabilities from tc= expansion.
It is needed to not overflow historycal 1024 limit.

Add range check and return -1 if entry is too big instead
of corrupting user memory.
1995-03-26 00:35:36 +00:00
David Greenman
eb0bc8709b Updated manual page to indicate flags argument; added return value and
errors section.
1995-03-25 17:24:47 +00:00
Poul-Henning Kamp
e169c6670b scandir(3) didn't transfer d_type, and d_ino is called d_fileno now. 1995-03-25 07:39:02 +00:00
Bill Paul
f05daed916 Add calls to endgrent() and endnetgrent() to the end of _createcaches(). 1995-03-25 00:30:35 +00:00
Bill Paul
06643071e5 Add more sanity checks. *Lots* of sanity checks. Huge tracts of sanity checks.
Make sure all arguments to the yp_*() functions are valid before sending
them off to the server. This is somewhat distressing: once again my
FreeBSD box brought down my entire network because of NIS bogosities.
I *think* the poor argument checking in this module is the cause, but
I still haven't been able to reproduce the exact series of events that
lead to the ypserv crashes. For now I've resorted to sticking my FreeBSD
box in a seprate domain. Hopefully a weekend of heavy testing will
uncover the problem.
1995-03-24 21:21:37 +00:00
Bill Paul
0ffe27f544 Make sanity checks saner: don't let setnetgrent() or innetgr() swallow
any bogus arguments.
1995-03-24 20:42:28 +00:00
Andrey A. Chernov
c90720154b Get rid of strtok(), it is depricated in libs 1995-03-24 17:40:54 +00:00
Andrey A. Chernov
c8448f10eb Change strtok() to strsep(), strtok() usage is depricated
in libraries.
1995-03-24 17:27:22 +00:00
Andrey A. Chernov
bee5b8efe8 Change strtok() to strsep(), using strtok() can cause memory corruption
if user program use it too in the same time.
1995-03-24 16:33:44 +00:00
Andrey A. Chernov
3330823cc3 Sicnce this code shares the same fragment as gethostnamaddr:
Change strtok() to strsep(), cause memory corruption for all
programs which use strtok() too in the same time.
Fix potential NULL reference, depends of /etc/hosts.conf format
Fix the bug when service name fetched always from beginning of the line,
not from parsed token.
1995-03-24 15:51:30 +00:00
Andrey A. Chernov
3d1513bdeb Change strtok() to strsep(), cause memory corruption for all
programs which use strtok() too in the same time.
Fix potential NULL reference, depends of /etc/hosts.conf format
Fix the bug when service name fetched always from beginning of the line,
not from parsed token.
1995-03-24 15:38:54 +00:00
Bill Paul
828447008a Yikes! Fix stupid mistake I made in last commit that made getpwent() ignore
local password entries when YP was enabled. (How the heck did that
get by me!?)
1995-03-24 08:01:01 +00:00
Bill Paul
d34ef3d62b As per Justin T. Gibbs's request, agument the +@netgroup/-@netgroup
remapping mechanism in the following manner: if given an entry +@foo
and there is no netgroup named 'foo,' try searching for a regular
user group called 'foo' and build the cache using the members of
group 'foo' instead. If both a netgroup 'foo' and a user group 'foo'
exist, the 'foo' netgroup takes precedence, since we're primarily
interested in netgroup matching anyway.

This allows access control schemes based on ordinary user groups
(which are also available via NIS) rather than netgroups, since
netgroups on some systems are limited in really brain-damaged ways.
1995-03-24 05:46:47 +00:00
Bill Paul
e17334c329 Don't let yp_match() or yp_next() operate on null or empty keys: asking
ypserv to do a yp_match() with an a null or empty key causes much havok.
(Note that this could be construed as a denial of service attack if used
maliciously.)
1995-03-23 22:23:15 +00:00
Bill Paul
62a771700f Don't let setnetgrent() operate on a null or empty group name: it can
tickle a bug in ypserv and make a serious mess of things.
1995-03-23 22:21:16 +00:00
Bill Paul
353fefe325 Very important sanity checks: today I clobbered all four NIS servers on
my network because setnetgrent() was trying to do a lookup on group "".
It seems that an attempt to do a yp_match() (and possible yp_next())
on a null or empty key causes Sun's ypserv in SunOS 4.1.3 to exit
suddenly (and without warning). Our ypserv behaves badly in this
situation too, thoush it doesn't appear to crash. In any event, getpwent,
getnetgrent and yp_match() and yp_next() are now extra careful not to
accidentally pass on null or empty arguments.

Also made a small change to getpwent.c to allow +::::::::: wildcarding,
which I had disabled previously.
1995-03-23 22:18:00 +00:00
Bill Paul
5f115c9d15 Lots of fixes/improvements in the +user substitution handling:
- Have the +@netgroup/-@netgroup caches handle the +user/-user cases too.
- Clean up getpwent() to take advantage of the improved +user/-user handling.
1995-03-23 17:33:19 +00:00
Bill Paul
89395683ea Small cleanups:
- Prepend a '_' to a couple of things
- Make sure YP is enabled in _createcaches()
- Remove a couple of unused/uneeded variables from _createcaches()
1995-03-23 04:04:01 +00:00
Bill Paul
9531ca9353 Phew! Done at last: getpwent now understands +@netgroup/-@netgroup directives
in addition to the existing NIS substitutions. I may tweak this a bit in
the future, but the important stuff is all here.
1995-03-23 00:59:15 +00:00
Bill Paul
8516cd0fa5 Use better/stronger/faster NIS lookup code: by using yp_match() instead of
the yp_first()/yp_next() combo, we let the database code in ypserv do some
of the work for us.
1995-03-21 19:47:12 +00:00
Poul-Henning Kamp
72b799a9a3 msun becomes the default -lm the right way now. 1995-03-21 02:52:05 +00:00
Bill Paul
2943bd1c53 Reviewed by: Bill Paul <wpaul@freebsd.org>
Submitted by:	Sebastian Strollo <seb@erix.ericsson.se>

- In /usr/src/lib/libc/yp/yplib.c, function yp_first when clnt_call
fails with (r != RPC_SUCCESS) ysd->dom_vers should be set to 0! This
ensures that /var/yp/bindings/dom.vers will be read again on retry.
What happens now is that when our server is down and someone tries to
use yp they will continue to try until kingdom come. So:
        if(r != RPC_SUCCESS) {
                clnt_perror(ysd->dom_client, "yp_first: clnt_call");
                ysd->dom_vers = -1;
                               ^^^^ change to 0
                goto again;
        }
1995-03-21 00:48:55 +00:00
Rodney W. Grimes
1a96efa2b8 Comment out declaration of kvm_uread until it can be fixed correctly. 1995-03-20 16:35:11 +00:00
Rodney W. Grimes
15f7fc2caa Change u_long to unsigned long to be consistent. 1995-03-20 16:17:50 +00:00
Bill Paul
8538335f21 At last! Modified __ivaliduser() to do the same kind of user/host validation
that everyone else does: you can now use +host/-host, +user,-user and
+@netgroup/-@netgroup in /etc/hosts.equiv, /.rhosts, /etc/hosts.lpd and
~/.rhosts. Previously, __ivaliduser would only do host/user matches,
which was lame. This affects all the r-commands, lpd, and any other
program/service that uses ruserok().

An example of the usefullness of this feature would be a hosts.equiv
file that looks like this:

+@equiv-hosts

Since the netgroup database can now be accessed via NIS, this lets you
set up client machines once and then never have to worry about them
again: all hosts.equiv changes can now be done through NIS. Once I
finish with getpwent.c, we'll be able to do similar wacky things
with login authentication too. (Our password field substitution
will finally be on par with everyone else's, and I'll finally be
able to fully integrate my FreeBSD machine into my network without
having to worry about the grad students sneaking into it when I'm
not looking. :)

Danger Will Robinson! I tested this thing every which way I could, but
Murphy's Law applies! If anybody spots a potential security problem with
the way my matching algorithm works, tell me immediately! I don't want
crackers snickering and calling me names behind my back. :)
1995-03-20 07:29:55 +00:00
Bill Paul
e80307946b Whoops: expanding netgroups that reference multiple netgroups doesn't
work because parse_netgrp() doesn't recurse properly. Fixed by
changing

if (parse_netgrp(spos))
	return(1);
to

if (parse_netgrp(spos))
	continue;

inside parse_netgrp(). (Lucky for me I happen to have a fairly complex
'live' netgroup database to test this stuff with.)
1995-03-19 22:19:52 +00:00
Nate Williams
c0585ea944 Separated out the _putchar & __cputchar() routines so that programs such
as tn3270 can replace _putchar(0 with their own routine and still keep
using the __cputchar() routine used by all of the other curses routines.

Reviewed by:	"Andrey A. Chernov, Black Mage" <ache@astral.msk.su>
1995-03-19 21:47:51 +00:00
Joerg Wunsch
cb0b0e16cd libkvm exports kvm_uread(), so do declare it in the header file.
Got apparent by Philippe's -Wall patch for /usr/bin.
1995-03-19 13:36:49 +00:00
Joerg Wunsch
ec4f225196 Cast the offset of one call to lseek() to off_t, as it's already done
in all other places here.

This is a hack, the interface should be changed to use off_t's
everywhere around, but this will require to update all the programs
that happen to use libkvm.
1995-03-19 13:33:05 +00:00
Poul-Henning Kamp
f06a5580a6 add a couple of missing #include lines 1995-03-19 07:00:52 +00:00
Bill Paul
409495f6c7 Two major changes:
- Added support for reading netgroups from NIS/YP in addition to the
local /etc/netgroups file. (Note that SunOS and many other systems only
support reading netgroups via NIS, which is a bit odd.)

- Fix Evil Null Pointer Dereferences From Hell (tm) that caused
parse_netgrp() to SEGV when expanding netgroups that include
references to other netgroups. Funny how nobody else noticed this.

This is the first step in implimenting +@netgroup substitution in
getpwent.c and any other places that could use it and don't already
support it (which is probably everywhere).
1995-03-19 06:16:03 +00:00
Andrey A. Chernov
798563cdfb Fix authunix_maxgrouplist test
Submitted by: Scott Hazen Mueller <scott@zorch.sf-bay.org>
1995-03-18 17:55:03 +00:00
Rodney W. Grimes
dddb7b460b Remove private mkdir for /usr/include/ss, no handled by mtree. 1995-03-18 08:34:42 +00:00
Bill Paul
89047c9c7c Fix 'putting +: in /etc/group causes many programs to dump core' bug
by heading off possible null pointer dereferences in grscan(). Also
change getgrnam() slightly to properly handle the change: if grscan()
returns an rval of 1 and leaves a '+' in the gr_name field and YP is
enabled, poll the YP group.byname map before giving up. This should
insure that we make every effort to find a match in the local and
YP group databases before bailing out.
1995-03-18 05:03:10 +00:00
Bill Paul
b337d29402 Repeat after me kids: "I will not try to install files into a directory
when I'm not sure whether or not that directory exists."

Today I discovered that rebuilding /usr/include completely from scratch
doesn't work, because the libss Makefile tries to install headers into
/usr/include/ss, which 'make includes' does not create. The result is that
the libss Makefile plants the header files in /usr/include as individual
files called 'ss,' with the second one overwriting the first, and the
third one overwriting the second. So instead of a directory called
/usr/include/ss, you end up with just one file called /usr/include/ss with
only the last header file in it. Check out /usr/include/ss on freefall
and you'll see what I mean.

I've modified the beforeinstall target in the libss Makefile to check
for the presence of the ${DESTDIR}/usr/include/lbss directory and to
create it if it isn't already there. Hopefully I did it right.
1995-03-15 01:33:05 +00:00
Andrey A. Chernov
00c965147b Fix wbkgdset macro
Submitted by: Andreas Wetzel <mickey@deadline.snafu.de>
1995-03-13 19:02:04 +00:00
Bruce Evans
918bed7582 Remove `|| flags & ALT == 0' which was an obscure no-op, not a
parenthesization/precedence bug.
1995-03-12 13:53:51 +00:00
Bruce Evans
d26be6f09d Obtained from: 1.1.5. Originally by jtc. Cosmetically changed for this
commit by bde.

Fix bugs in floating point formatting.  The 4.4lite version is similar
to revision 1.3 in old-cvs and is missing all of jtc's fixes in revision
1.4 in old-cvs.  Revision 1.2 in ncvs fixed one of the old bugs but
introduced at least one new one (for %.0e).

old-cvs log:
revision 1.4
date: 1993/11/04 19:38:22;  author: jtc;  state: Exp;  lines: +33 -20
My work from NetBSD to make printf() & friends ANSI C compliant.
Fixes several bugs in floating point formatting:
  1. Trailing zeros were being stripped with %e format.
  2. %g/%G formats incorrect.
  3. Lots of other nits.
1995-03-12 13:26:49 +00:00
Andrey A. Chernov
b603d90c20 Fix suspended vipw hangs
Obtained from: NetBSD
1995-03-09 21:53:12 +00:00
Andrey A. Chernov
b76cc0f831 stdio.h --> unistd.h 1995-03-09 17:45:23 +00:00
Bruce Evans
b2fd1f671d Obtained from: NetBSD
Remove common sources from ${SRCS} when they are replaced by arch-specific
sources.
1995-03-08 01:41:40 +00:00
Bruce Evans
553e72d902 Don't build swab.o here. It gets built in libc/i386/string. Previously
the copy built from here was overwritten by the other copy and the other
copy was put in library-building command lines twice.  ld now objects to
duplicated modules.
1995-03-07 04:19:11 +00:00
Nate Williams
4f749d2669 If we are going to set the OBJS target, don't add to the old target. This
caused the RPC libraries to contain two versions of the same file.
1995-03-04 17:39:24 +00:00
Andrey A. Chernov
5b79c36cbc Solve conflict between two global force variables 1995-03-03 02:34:14 +00:00
Joerg Wunsch
be7f0d04fe On snap 950210, format %s (print seconds from the epoch) is missing
from the code in strftime.c . This affects both the library code
and all the commands using it (e.g. date +%s).

Note that %s is not required by ANSI, but we've already got it in 1.1.5.1.

Suggested by: luigi@labinfo.iet.unipi.it (Luigi Rizzo)
1995-03-01 23:08:40 +00:00
Paul Richards
a7535d5b95 Pull old lex.l out of attic and update to new one. 1995-03-01 08:25:40 +00:00
Paul Richards
be7d950dc8 Completely rewrite libforms so everything is done at runtime rather
than at compile time.

Should have same functionality as old libforms but with new mechanism.

Lots of new features that use the new mechanism are still to be added.
1995-03-01 08:19:06 +00:00
Jordan K. Hubbard
7a15a32a17 Additions from Thomas Graichen to mention each functions' floating point
counterpart.
Submitted by:	Thomas Graichen <graichen@sirius.physik.fu-berlin.de>
1995-03-01 05:06:48 +00:00
Bruce Evans
64f14011a8 Fix previous fix to agree with the man page - don't report errors in
kvm_open() if errstr is NULL.
1995-02-25 16:44:01 +00:00
Bruce Evans
5dddb8148b Don't attempt to lstat() the POSIXLY invalid empty pathname.
realpath() still accepts "" as an arg and converts it to a canonical
pathname for the current directory.
1995-02-25 16:06:07 +00:00
Poul-Henning Kamp
728736c058 Explain the full story, and make it understandable too. 1995-02-25 04:43:20 +00:00
Poul-Henning Kamp
6c20486de4 Clean a bunch of -Wall warnings. 1995-02-24 08:51:34 +00:00
Poul-Henning Kamp
12eaa3d55d Remove some unused variables and fix two blatant core dump triggers. 1995-02-24 08:15:27 +00:00
Poul-Henning Kamp
e9434bccf7 Remove an unused variable. 1995-02-24 07:51:13 +00:00
Poul-Henning Kamp
888bbd45f9 fix the synopsis to show
|     void
|    *signal(int sig, void (*func)(int))

instead of

|     void
|     *signal(sig, func())
|
|     void
|     (*func)()
1995-02-24 07:35:49 +00:00
Andrey A. Chernov
977e8ea0c9 Add missing #include <time.h> with time() prototype 1995-02-24 01:02:59 +00:00
Andrey A. Chernov
7f3b05aa16 Fix typo: pcap.h.h 1995-02-23 18:47:06 +00:00
Poul-Henning Kamp
5dec1760ed Quench a warning and fix some duplicity by using the official strerror
routine, instead of rolling our own.
1995-02-23 06:55:14 +00:00
Andras Olah
8a695f765c Fix bogus Makefile which resulted in incompatible shared and static
libs.

Reviewed by:	Michael Reifenberger <root@rz-wb.fh-sw.de>,
		roberto@blaise.ibp.fr (Ollivier ROBERT)
1995-02-21 10:46:34 +00:00
Poul-Henning Kamp
d66cc71bb5 Speed md5 up around 30% by shorting out a couple of cumbersome
memcpy equivalent functions.
1995-02-21 06:01:49 +00:00
Nate Williams
56b688ea1c Make libcompat a static only library.
Since functions will come and go from libcompat as they are deprecated
it makes no sense to build a shared library out of it as it will change.

Based on freedback from Terry and Jonas on the mailing lists.
1995-02-20 18:19:50 +00:00
Andrey A. Chernov
e96a21509f Minor optimization. 1995-02-18 11:36:33 +00:00
Andrey A. Chernov
3d4c9a4bd7 Minor optimization 1995-02-18 01:42:02 +00:00
Andrey A. Chernov
7b7aeeccde Copyrights cleanup 1995-02-18 01:39:00 +00:00
Stefan Eßer
b5fd1704b2 Bruce pointed out, that a misleading warning would be issued
in an (unlikely) border case (maxgroups==1 and the user is on
an /etc/group line for the same group and that group only ...).

Now this case is dealt with as before ...
1995-02-17 19:45:21 +00:00
Stefan Eßer
f067e922a9 Protect against duplicate gids in group list (as could be the
result of being a member of some group in both /etc/group and YP).
1995-02-17 17:36:09 +00:00
Andrey A. Chernov
926f20c973 Don't pick _warn module now 1995-02-17 16:36:12 +00:00
Andreas Schulz
2c0529005c Correct the parameters for the fchown. The third was erroneously
specified as uid_t but should be gid_t.
1995-02-17 00:41:30 +00:00
Andrey A. Chernov
a4d5d0cbde Add 8bit collate stuff
Submitted by: alex@elvisti.kiev.ua
1995-02-16 17:01:11 +00:00
Andrey A. Chernov
c3d0cca4e9 Add 8-bit collate stuff
Submitted by: alex@elvisti.kiev.ua
1995-02-16 04:24:39 +00:00
Garrett Wollman
bae74debca Document Transaction TCP extensions to generic system calls. 1995-02-15 22:53:04 +00:00
Andrey A. Chernov
c6493ee41b Add missing lib_window.c to SRCS 1995-02-13 17:23:18 +00:00
Poul-Henning Kamp
4519b73393 Fix broken makefile. 1995-02-12 02:35:35 +00:00
Jordan K. Hubbard
1338e00966 Support for >32 PTYs.
Submitted by:	Heikki Suonsivu <hsu@cs.hut.fi>
1995-02-09 11:11:01 +00:00
Jordan K. Hubbard
f2c81e4dd7 Install the header files. 1995-02-09 08:00:20 +00:00
Bruce Evans
c2b5bd7a79 CLEANFILES was missing a few files. 1995-02-08 21:11:39 +00:00
Bruce Evans
9ee337da19 Add libpcap. I don't know what it is doing in the tree, but it has
settled for too long.  Compiling it gives 142 lines of compiler
warnings.  Perhaps the dirt will be fixed if it is visible.
1995-02-08 20:46:53 +00:00
Jordan K. Hubbard
2a947a4bbf Add two parts of Mark's/Gary's dlopen() changes that I missed before. 1995-02-08 17:56:27 +00:00
Jordan K. Hubbard
38f4fb1525 Support for more Sun compatible dlopen() and friends. Also added proper error
handling.
Reviewed by:    gj
Submitted by:   Mark Diekhans <markd@grizzly.com>
1995-02-07 13:27:29 +00:00
David Greenman
16be381004 Backed out Keith Bostic's getcwd/$PWD hack. It is causing things to break
all over the place.
1995-02-07 05:52:57 +00:00
Poul-Henning Kamp
d55ceee7a3 Document the getenv(PWD) feature. 1995-02-05 18:14:38 +00:00
Bill Paul
d66efc62bd Collapsed _masterpw_breakout_yp() and _pw_breakout_yp() into a
single function.
1995-02-05 02:12:49 +00:00
Poul-Henning Kamp
03cfe806a2 A cute hack to speed up things by Keith: if getenv("PWD") is the same
inode as ".", then just return that.  I added a check so it must start with
a '/'.

Reviewed by:	phk
Submitted by:	bostic@cs.berkeley.edu (Keith Bostic)
1995-02-04 19:29:22 +00:00
Bruce Evans
66a96c4ca4 Include <time.h> instead of <sys/time.h> to get CLK_TCK. Including
<sys/time.h> works because <sys/time.h> includes <time.h> if KERNEL
is not defined, but is ugly.
1995-02-03 22:28:34 +00:00
Bruce Evans
711fbb0afc Change CLK_TCK to CLOCKS_PER_SEC.
Add a missing apostrophe that suggests inverting the frequency to get
tick size.  It read better before because `CLK_TCK' suggests a tick
size although it is actually a frequency.
1995-02-03 22:09:56 +00:00
Bruce Evans
3652b5c25d Change CLK_TCK to CLOCKS_PER_SEC. (CLK_TCK is a deprecated POSIX feature
and is not necessarily related to the ANSI CLOCKS_PER_SEC).

Parenthesize macro args.
1995-02-03 21:59:45 +00:00
Bruce Evans
6231933da9 Fix previous change to preserve const'ness. 1995-02-03 21:54:03 +00:00
Bill Paul
a393cc06f5 Fixed a rather serious bug that presents itself when FreeBSD is configured
as an NIS client. The pw_breakout_yp routines that are used to populate the
_pw_passwd structire only do anything if the bits in the pw_fields member
_pw_passwd are cleared. Unfortunately, we can get into a state where
pw_fields has garbage in it right before the YP lookup functions are
called, which causes the breakout functions to screw up in a big way.
Here's how to duplicate the problem:

- Configure FreeBSD as an NIS client
- Log in as a user who's password database records reside only in
  the NIS passwd maps.
- Type ps -aux

Result: your processes appear to be owned by 'root' or 'deamon.'
/bin/ls can exhibit the same problem.

The reason this happens:

- When ps(1) needs to match a username to a UID, it calls getpwuid().

- root is in the local password file, so getpwuid() calls  __hashpw()
  and __hashpw() populates the _pw_passwd struct, including the pw_fields
  member. This happens before NIS lookups take place because, by coincidence,
  ps(1) tends to display processes owned by root before it happens upon
  a proccess owned by you.

- When your UID comes up, __hashpw() fails to find your entry in the
  local password database, so it bails out, BUT THE BITS IN THE pw_fields
  STRUCTURE OF _pw_passwd ARE NEVER CLEARED AND STILL CONTAIN INFORMATION
  FROM THE PREVIOUS CALL TO __hash_pw()!!

- If we have NIS enabled, the NIS lookup functions are called.

- The pw_breakout_yp routines see that the pw_fields bits are set and
  decline to place the data retrieved from the NIS passwd maps into the
  _pw_passwd structure.

- getpwuid() returns the results of the last __hashpw() lookup instead
  of the valid NIS data.

- Hijinxs ensue when user_from_uid() caches this bogus information and
  starts handing out the wrong usernames.

AAAARRRRRRRRRGGGGGGHHHHHHHHHH!!!

*Please* don't tell me I'm the only person to have noticed this.

Fixed by having __hashpw() check the state of pw_fields just before
bailing out on a failed lookup and clearing away any leftover garbage.
What a fun way to spend an afternoon.
1995-02-03 01:09:35 +00:00
Bill Paul
320ce7b758 Fix for that last fix... pass the hat. :) 1995-02-01 20:09:00 +00:00
Bill Paul
c768efa1a8 Small fix to _getyppass(): sometimes we can construct the wrong mapname
when looking for master.passwd.whatever.
1995-02-01 20:06:33 +00:00
Paul Richards
8c490a36b0 Implemented height field for text fields so they can now be more than
one line long.

Fixed a bug in the input field with cursor positioning at the end of
the field.

Make the print_status function available to apps so they can print
status messages.

Updated the example for the new fib parser.
1995-02-01 04:06:37 +00:00
Bill Paul
d0ef66889a Some changes for YP password map handling:
- FreeBSD's NIS server can supply a master.passwd map, which has
  more fields in it than a standard passwd map, so we need a
  _master_pw_breakout() fuction.

- When doing passwd map lookups, look for master.passwd.* by attempting
  a _yp_first() on master.passwd.byname. If it exists, we're being served
  by a FreeBSD NIS server and we should use this map.

- If we aren't the superuser, retrieve only the standard passwd maps.
  If we're being served by a FreeBSD system, then the passwd map has
  no passwords in it, and it won't serve us the master.passwd map unless
  we're superuser anyway.

There's a small speed hit for the superuser inherent in the check for
the master.passwd map, but this lets us dynamically decide what to do
rather than rely on a non-standard config file somewhere. Since all
of this is bypassed for normal users, they shouldn't notice the
difference.
1995-01-31 10:04:18 +00:00
Paul Richards
0d595e6acd Add all the necessary bits to use color if the terminal allows it.
You can now specify separate attributes for selected/not selected
cases individually for each field and also an attr for the form as
a whole so you can now have colored backgrounds for the form and
different coloured fields etc.

Update the example.

Change the copyright to a BSD style one.
1995-01-30 02:41:29 +00:00
David Greenman
cc6f628176 Be sure to properly fail if there are not enough fields. Problem
reported by MARC Giannoni <marc@cmc.eng.comsat.com>, this fix is by me.
1995-01-27 22:30:03 +00:00
Doug Rabson
6de86c13d8 Reclaim memory used for telldir cookies on closedir. 1995-01-27 13:51:18 +00:00
Peter Dufault
672412c27e Clean up handling of unspecified names. Clarify man page. 1995-01-26 23:48:41 +00:00
Paul Richards
942e8a961a Truncate any default inputs to the input width.
Update the example so it works properly.
1995-01-25 08:26:17 +00:00
Paul Richards
b82ad93964 New example that uses the new forms language. 1995-01-25 03:34:48 +00:00
Paul Richards
faf710b023 Update libforms to agree with new fib. 1995-01-25 03:33:43 +00:00
Peter Dufault
af6b5090b9 Remove "va_start" macro. 1995-01-25 00:33:50 +00:00
Andrey A. Chernov
509b7efc3e CFLAGS: = --> += 1995-01-24 22:09:46 +00:00
Paul Richards
83a8b44d6f Changed the example to use the forms spec file. 1995-01-24 13:29:30 +00:00
Paul Richards
39c631d1b9 Changed the example to use the forms spec file.
Made a couple of variable name changes.
1995-01-24 13:27:46 +00:00
Peter Dufault
10ee7eaff2 added libscsi 1995-01-24 12:10:42 +00:00
Peter Dufault
c4c754deba SCSI library layered on SCIOCOMMAND 1995-01-24 12:10:11 +00:00
Jordan K. Hubbard
f932e96d48 Eliminate a bogus tab. 1995-01-24 00:13:56 +00:00
Garrett Wollman
d0e917e9b8 Don't call _doprnt, which doesn't exist; use vfprintf. 1995-01-23 22:53:12 +00:00
Garrett Wollman
e79b19bc05 Make Jordan happy:
1) Link against object directory version of libcom_err.so.
2) Don't try to install ss_err.h if we haven't made it yet.  It's not
   on the critical path for `make world' at this point.
1995-01-23 18:56:40 +00:00
David Greenman
717d9cdd57 First round of changes to clean up the RCSID mess in libc:
1) Changed LIB_SCCS and SYSLIB_SCCS to LIB_RCS and SYSLIB_RCS.
2) Changed sccsid[] variables to rcsid[]
3) Moved all RCSID strings into .text
4) Converted all SCCSID's to RCS $Id$'s
5) Added missing $Id$'s after copyright.
1995-01-23 01:30:24 +00:00
David Greenman
b3c361e217 Changed LIB_SCCS and SYSLIB_SCCS #defines to LIB_RCS and SYSLIB_RCS. 1995-01-23 01:22:08 +00:00
David Greenman
1504cd6172 (Very) minor improvement from NetBSD/J.T.Conklin. 1995-01-22 22:03:45 +00:00
David Greenman
530eb0c1c4 Added leaner and meaner swab() function by J.T. Conklin. 1995-01-22 21:36:15 +00:00
Garrett Wollman
1253de3840 Fix from Rod so that std_rqs.c can get rebuilt properly when
doing a make world.
1995-01-21 23:30:31 +00:00
Garrett Wollman
a6066145ff *** empty log message *** 1995-01-21 23:01:33 +00:00
Garrett Wollman
2ade60ce3c In the non-PARANOID case, make sure to set `notickets' to 0 sothat login.c
doesn't complain.
1995-01-20 23:07:10 +00:00
Jordan K. Hubbard
609c85875a Add the Packet Capture Library from Michael Reifenberger.
Submitted by:	mr
1995-01-20 04:13:07 +00:00
Garrett Wollman
8a256cf77b Add libss. 1995-01-19 22:32:05 +00:00
Garrett Wollman
2343225488 Port to FreeBSD. 1995-01-19 22:28:38 +00:00
Garrett Wollman
282244c5b6 MIT SIPB subsystem' library, needed for kadmin' and some other MIT programs. 1995-01-19 21:28:01 +00:00
Garrett Wollman
bb38a730ff Fix unbalanced #endif introduced by yesterday's change. 1995-01-19 19:01:50 +00:00
Doug Rabson
2cc220b6ed Fix handling of 'e' format floating point so that it prints trailing zeros
correctly.
1995-01-19 12:05:53 +00:00
Garrett Wollman
c7da24ddb6 Prevent sites from shooting themselves in the foot while enabling/disabling
YP by disallowing `+' entries as logins in all cases.  (This handles the
case of a `+' entry in the password file but YP not running, which should
never happen but is easy enough to check for so we'll apply some
prophylaxis.)
1995-01-17 23:17:38 +00:00
Andrey A. Chernov
eaa36bec77 Back out bkgd changes, now acts per braindamaged sysv standard 1995-01-16 17:33:33 +00:00
Garrett Wollman
758f3a64bd Modify klogin to:
1) Don't spit out an error message if Kerberos is installed but not yet
   set up.

2) Don't attempt to verify the ticket you got back, as workstations
   are not intended to have srvtab files of their own.

Both behaviors can be re-enabled with KLOGIN_PARANOID.
1995-01-14 22:57:41 +00:00
Garrett Wollman
af4d8ead38 The Common Error Description Library, developed by MIT SIPB and used by
a number of (ex-)Athena programs.  Breaking my own rules for importing
somewhat, as this code does not appear to be actively maintained by anyone
(not that it really needs it).
1995-01-14 22:23:41 +00:00
Paul Richards
f4ae9090f4 Added emacs ^A,^E,^B & ^F keybindings to field editor.
Changed a constant to a sizeof in test.c
1995-01-11 06:08:45 +00:00
Paul Richards
369cf5afc3 Change size of example form from 80x25 to 80x24 so it works
in a standard xterm.
1995-01-11 01:29:38 +00:00
Jordan K. Hubbard
4c0b41ec3b As long as I can't figure out why this doesn't work, I might as well
add some error checking to it and clean this up a bit.
1995-01-10 12:36:44 +00:00
Paul Richards
ba1efeeea4 Place the cursor better on buttons.
Stop field display attributes getting clobbered.
1995-01-10 04:10:55 +00:00
Paul Richards
7f8bb70cff New forms library. This provides some basic functions for writing
input forms. It has the following simple fields:

Text fields: Just titles, labels etc.

Input fields: An editable text field that may or may not have an
initial default value.

Labelled input field: This is an input field that has an initial
informative entry in it but it vanishes when you start editing the
field.

Toggle fields: These are fields with a pre-defined list of options
which you cycle through using the space bar.

Action fields: These are button type fields that call functions when
they are selected.

A simple demo is included in examples.
1995-01-10 04:00:37 +00:00
Andreas Schulz
02cb5cc4bf Add the sys/types.h include to the necessary documented includes for the
getrusage call.
1994-12-31 18:50:57 +00:00
Andrey A. Chernov
19f1105992 Fix compiler warnings about tputs argument 1994-12-28 14:30:19 +00:00
Bruce Evans
75b6d64b84 fixunsdfsi.S:
Embalm.  Rewrite to do things much the same as gcc-2: use fistpq for speed
and elegance, and mishandle overflow consistently.  __fixunsdfsi() is no
longer called by gcc.
1994-12-27 13:37:38 +00:00
Bruce Evans
08747772a2 sigsetjmp.S:
Remove unnecessary .text statement.
1994-12-27 13:34:04 +00:00