| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
changes
Reviewed by: Bob Willcox <bob@obiwan.pmr.com>
|
|
|
|
|
| |
Fix some spelling errors in the example.c file and make error handling
a little more explanatory.
|
| |
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
presence of the master.passwd.byname map, and remember to free the
returned order value before exiting.
|
|
|
|
| |
strhash() functions.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Manpage for strhash functions to follow tomorrow.
|
|
|
|
|
| |
that the db/hash functions don't, and they're much simpler to use for
low-overhead string hashing.
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
errors section.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
any bogus arguments.
|
| |
|
|
|
|
| |
in libraries.
|
|
|
|
| |
if user program use it too in the same time.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
local password entries when YP was enabled. (How the heck did that
get by me!?)
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
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.)
|
|
|
|
| |
tickle a bug in ypserv and make a serious mess of things.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
- Have the +@netgroup/-@netgroup caches handle the +user/-user cases too.
- Clean up getpwent() to take advantage of the improved +user/-user handling.
|
|
|
|
|
|
| |
- Prepend a '_' to a couple of things
- Make sure YP is enabled in _createcaches()
- Remove a couple of unused/uneeded variables from _createcaches()
|
|
|
|
|
| |
in addition to the existing NIS substitutions. I may tweak this a bit in
the future, but the important stuff is all here.
|
|
|
|
|
| |
the yp_first()/yp_next() combo, we let the database code in ypserv do some
of the work for us.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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;
}
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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. :)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.)
|
|
|
|
|
|
|
| |
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>
|
|
|
|
| |
Got apparent by Philippe's -Wall patch for /usr/bin.
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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).
|
|
|
|
| |
Submitted by: Scott Hazen Mueller <scott@zorch.sf-bay.org>
|
| |
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|