* configure.in: Check if prototype needed for herror()
* commands.c (ayt_status): Add explict return type (void or int)
depending on signal handler definition. Add prototype for herror
if system does not provide one.
* shs.h, shs.c, t_shs.c: Fix sha1 on Windows by renaming LONG to
SHS_LONG to avoid problem with LONG being signed on Windows.
Rename BYTE to SHS_BYTE to avoid any name colisions with Windows
(where BYTE and LONG are types defined in the Platform SDK).
* aclocal.m4 (CHECK_WAIT_TYPE): Improved testing if wait uses int
or struct union as an argument. Tests if a prototype conflict
exists with int being used, and if so, falls back on the old test.
* configure.in: Add AC_TYPE_GETGROUPS to determine argument to
getgroups.
* auth_unix.c (authunix_create_default): Use GETGROUPS_T array in
call to getgroups. Copy into array of int for call to
authunix_create. Note: If auth_unix protection ever used with this
code, we will need to cleanup assumptions in int being 32 bits in
OTW transfer of gids.
* clnt_tcp.c, svc_tcp.c: Change writetcp and readtcp to take char
* as first argument to be compatible with xdrrec_create.
* xdr.c (xdr_opaque): Cast argument in call to XDR_GETBYTES.
* svc.h: Add prototype for gssrpc_svcudp_enablecache.
* svc_auth_gssapi.c (_gssrpc_svcauth_gssapi): Change
_svcauth_gssapi to _gssrpc_svcauth_gssapi for consistancy.
* svc_auth.c: Move prototypes for _gssrpc_svcauth_{unix, null,
short, gssapi} to:
* svc_auth.h: here.
* svc_auth_unix.c: Update _gssrpc_svcauth_short and
_gssrpc_svcauth_unix to match prototype.
* secure.c: Instead of hard wiring the FUDGE_FACTOR, new
variables to keep track of the total buffer length desired and
the actual maximum that can be fitted. Add
secure_determine_constants() to determine the mechanism
dependent overhead. This has a hard limit for krb4 - for
gssapi use gss_wrap_size_limit.
Tom Yu [Mon, 2 Jul 2001 21:58:00 +0000 (21:58 +0000)]
* update_utmp.c (pty_update_utmp): Remember to chop off leading
"/dev/" for the non-sysV case. Handle lseek() returning non-zero
yet non-negative values (it usually does... :-), so that we can
actually write somewhere not at the beginning of the utmp file if
necessary.
Tom Yu [Sat, 30 Jun 2001 02:57:51 +0000 (02:57 +0000)]
* init_ctx.c (get_profile_etype_list): Fix etype-counting loop so
that trailing separator characters (as in the DEFAULT_ETYPE_LIST)
don't cause another iteration, which was causing the following
loop to fall off the end of the string due to count being one too
great.
Ezra Peisach [Thu, 28 Jun 2001 20:46:58 +0000 (20:46 +0000)]
* auth.h: Provide full prototype for xdr_des_block
* auth_gssapi.h: Complete prototypes for
_svcauth_gssapi_unset_names().
* clnt.h: Prototype dispatch functions and all functions.
* clnt_perror.c: Prototype static auth_errmsg().
* clnt_raw.h clnt_tcp.c, clnt_udp.c: Provide prototypes to static
functions and match dispatch table prototypes. control function
takes void * instead of caddr_t.
* pmap_rmt.c: Move prototype for resultproc_t to pmap_clnt.h.
* rpc.h: get_myaddress returns int. Add prototypes for callrpc and
getrpcport.
* rpc_commondata.c (rpc_createerr): When initializing rpc_creaerr
use RPC_SUCCESS instead of 0.
* get_myaddress.c, rpc_dtablesize.c: Include gssrpc/rpc.h for
prototype.
* pmap_clnt.h, pmap_prot.h, pmap_rmt.h, rpc_msg.h: Full prototypes
for all functions.
* svc.c: Provide full prototype for static function.
* svc.h: Prototypes for dispatch functions added. Flushed out
prototypes for all functions missing prototypes. Added prototype
for svcfd_create.
* svc_auth.c: Prototypes for all functions referenced.
* svc_auth.h: Prototype dispatch functions to svc_auth_ops.
* svc_auth_any.c: Replace use of authany_wrap() with a new local
function that matches svc_auth_ops dispatch table.
* svc_simple.c: Provide prototype for static function
universal. Fill in missing types of parameters to
gssrpc_registerrpc.
* svc_raw.c svc_tcp.c, svc_udp.c: Provide prototypes for static
functions and match prototypes in dispatch table. Change getargs
and freeargs argument to void * from caddr_t.
* xdr.c (xdr_void): Function to match prototype of arguments given.
* xdr.h: Provide full prototypes for xdr_ops dispatch table and
xdr_void().
* svc_auth_gssapi.c, xdr_alloc.c, xdr_mem.c, xdr_rec.c,
xdr_stdio.c: Provide protypes for static functions and match
dispatch tables.
Ezra Peisach [Thu, 28 Jun 2001 19:02:04 +0000 (19:02 +0000)]
* krb4int.h: Provide prototype for krb_get_default_user and
krb_set_default_user if _WINDOWS is not defined. There is a
conditional prototype in krb.h for them.
Ezra Peisach [Wed, 27 Jun 2001 21:16:13 +0000 (21:16 +0000)]
*bindresvport.c: Include gssrpc/rpc.h for prototype
* auth_unix.h: Expand prototype for xdr_authunix_params to include
arguments.
* auth_gssapi.h: Give full prototypes for xdr_gss_buf,
xdr_authgssapi_creds, xdr_authgssapi_init_arg and
xdr_authgssapi_init_res.
* auth_gssapi.c, auth_none.c, auth_unix.c: For struct AUTH
disptach functions, provide full prototypes and ensure consistant
usage in functions
* auth.h: Provide prototypes dispatch functions in struct
AUTH. Give a forward declaration of struct rpc_msg. Change
duplicate definitions of AUTH_WRAP and AUTH_UNWRAP into auth_wrap
and auth_unwrap. Give full prototype for authany_wrap.
Ezra Peisach [Tue, 26 Jun 2001 20:35:59 +0000 (20:35 +0000)]
* krb4int.h: Add prototypes for krb__get_realmsfile(),
krb5 prototypes are declarted from krb.hkrb__get_cnffile() and
krb5 prototypes are declarted from krb.hk_gethostname().
* g_pw_in_tkt.c: Declare passwd_to_key() static.
* cr_tkt.c: Move krb5.h inclusion before krb.h so that certain
krb5 prototypes are declarted from krb.h.
* g_admhost.c, g_cnffile.c, g_krbhst.c, g_krbrlm.c,
gethostname.c
krb5 prototypes are declarted from krb.hrealmofhost.c:
Include krb4int.h and remove prototypes included in there.
Tom Yu [Fri, 22 Jun 2001 23:37:16 +0000 (23:37 +0000)]
* default.exp: Use the interface variable $TMPDIR to allow the
specification of an alternative temporary directory. Wrap a loop
around various testings and settings of interface variables that
specify the locations of programs to be tested, e.g. $KADMIND.
Add some support for having different sets of enctypes on client,
server, and kdc. The envstack changes and multiple config file
support should get cleaned up somewhat later to possibly allow for
programs to execute on different hosts.
(check_k5login): Fix up to reflect actual (perhaps bogus) behavior
of krb5_kuserok(), which doesn't do quite what we expect, so there
really does need to be something like "luser@KRBTEST.COM" in the
.k5login file.
(check_klogin): New procedure; .klogin also needs to be checked
for the v4gssftp test.
(envstack_push, envstack_pop): New procedure; keep a stack of
environment variable state, which is useful for running different
programs with different config files.
(setup_runtime_flags, setup_kerberos_env): Rewrite somewhat so
they play nice with the envstack.
(setup_krb5_conf): New procedure; write a config file with the
contents parameterized based on the type of program that will use
it.
(setup_kerberos_files): Create different krb5.conf files for
client, server, and kdc.
(setup_kadmind_srvtab, setup_kerberos_db, start_kerberos_daemons):
Rewrite to play nice with envstack.
(setup_root_shell_noremote): New procedure from raeburn; handle
the case where we're already running as root.
(setup_root_shell): Call setup_root_shell_noremote as appropriate.
Ezra Peisach [Fri, 22 Jun 2001 15:35:07 +0000 (15:35 +0000)]
* enc_des.c: Change local variable index to idx to not shadown
global function.
* kerberos5.c (kerberos5_is): Change errbuf to kerrbuf to not
shadow previous local.
* kerberos.c (kerberos4_send): Change random_key to rand_key to
prevent redefine by des.h. Change auth to kauth to not shadow global.
(kerberos4_status): Change name to kname for same reason.
Ezra Peisach [Fri, 22 Jun 2001 11:26:34 +0000 (11:26 +0000)]
* svc_simple.c (universal): Change transp to s_transp to not
shadow filewide static definition of name.
Move file wide definition of "pl" into respective functions.
* pmap_rmt.c: Change sin->sockin and socket->sock.
* pmap_getmaps.c, pmap_getport.c: Change socket to sock to not
shadow network function.
* bindresvport.c, clnt_generic.c: Change sin to sockin to not
shadow function declaration.
Danilo Almeida [Fri, 22 Jun 2001 07:51:38 +0000 (07:51 +0000)]
Cleanup usage of memory free routines:
* util_crypt.c (kg_encrypt, kg_decrypt): Use free() instead of
krb5_free_data_contents().
* util_cksum.c (kg_checksum_channel_bindings): Make sure that
returned memory is allocated with xmalloc() so that caller can use
xfree() on it.
* k5unseal.c (kg_unseal_v1): Use krb5_free_data_contents()
instead of xfree().
* k5seal.c (make_seal_token_v1): Use krb5_free_data_contents()
instead of xfree().
* init_sec_context.c (make_ap_req_v1): Use xfree() instead of
free() to be consistent with xmalloc() usage. Use
krb5_free_data_contents() instead of xfree().
* disp_name.c (krb5_gss_display_name): Use
krb5_free_unparsed_name() instead of xfree().
* add_cred.c (krb5_gss_add_cred): Use xfree() instead of free() to
be consistent with xmalloc() usage.
* accept_sec_context.c (krb5_gss_accept_sec_context): Remove
variables that were effectively unused. Use
krb5_free_data_contents() instead of xfree() where appropriate.
Ken Raeburn [Fri, 22 Jun 2001 03:28:46 +0000 (03:28 +0000)]
* destest.c (value): Now signed int, since some entries are negative.
(convert): Do bounds checking on character values used as indices into value
array.
Danilo Almeida [Fri, 22 Jun 2001 02:48:26 +0000 (02:48 +0000)]
* rc_io.c (krb5_rc_io_creat): Make cleanup code easier to read.
(krb5_rc_io_open_internal): Include code previously in
krb5_rc_open(). Add a new full pathname parameter so that a file
can be opened by its full pathname. Make cleanup code easier to
read.
(krb5_rc_io_open): Call krb5_rc_io_open_internal().
(krb5_rc_io_move): Fix Windows implementation so that it works
where it is used (only called by krb5_rc_dfl_expunge()).
(krb5_rc_io_sync): Fix function header to comply with coding
standard. Add implementation for Windows.
(krb5_rc_io_close): Close file descriptor only if it is not -1.
Set file descriptor to -1 if it is successfully closed.
* rc_dfl.c (krb5_rc_dfl_close_no_free): Leave file descriptor
check for krb5_rc_io_close().
(krb5_rc_dfl_expunge): Do better resource cleanup on error.
Ken Raeburn [Fri, 22 Jun 2001 01:47:29 +0000 (01:47 +0000)]
* adm_conn.c, kpasswd.c, srv_net.c: Changed various char string variables into
macros, for better format/argument checking under gcc.
* main.c (pwd_change): Use strncpy instead of sprintf to copy error message
text into buffer. Use goto rather than repeated code.
(main): Use %lx for params.mask. Make debug_level volatile. Delete unused
variables oldnames, rlen.
* srv_net.c (net_find_slave): Initialize "found".
(net_dispatch): Make "kret" volatile, so longjmp won't clobber it.
(net_slaves_active): Variable deleted.