Ken Raeburn [Wed, 4 Jul 2007 05:46:24 +0000 (05:46 +0000)]
gss krb5 mech enhanced error messages
Save detailed error messages (usually from the krb5 library) in
per-thread storage, mapping each error code to the most recently
produced message for it. Return the message from display_status.
Currently not implemented for a few cases where the krb5 mechanism
returns a minor status code of 0, or another value different from the
libkrb5 error code.
Other functions are available to store a generic string or formatted
message, but aren't used much at present.
Tested with these errors in context establishment:
* missing ccache (libkrb5 shows pathname if FILE: type)
* missing keytab (libkrb5 shows pathname if FILE: type)
* server principal unknown (libkrb5 shows server principal)
ticket: new
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19672
dc483132-0cff-0310-8789-
dd5450dbe970
Ken Raeburn [Wed, 4 Jul 2007 04:27:32 +0000 (04:27 +0000)]
Use strdup
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19671
dc483132-0cff-0310-8789-
dd5450dbe970
Ken Raeburn [Wed, 4 Jul 2007 04:26:14 +0000 (04:26 +0000)]
Use global spawn_id
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19670
dc483132-0cff-0310-8789-
dd5450dbe970
Ken Raeburn [Wed, 4 Jul 2007 04:06:54 +0000 (04:06 +0000)]
Perl code for generating "map" routines from a common template with
supplied type info.
* ktemplate.pm: Code for parsing a command line and writing out a
supplied template with substitutions.
* gen-map.pl: Parameter info and template for "map" type.
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19669
dc483132-0cff-0310-8789-
dd5450dbe970
Ken Raeburn [Wed, 4 Jul 2007 04:03:44 +0000 (04:03 +0000)]
Add a new per-thread datum for error message info in gssapi krb5 mech
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19668
dc483132-0cff-0310-8789-
dd5450dbe970
Ken Raeburn [Wed, 4 Jul 2007 04:00:36 +0000 (04:00 +0000)]
Some handy debugging code for gssapi errors in credential acquisition; currently disabled
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19667
dc483132-0cff-0310-8789-
dd5450dbe970
Ken Raeburn [Wed, 4 Jul 2007 03:51:45 +0000 (03:51 +0000)]
If error is KDC_ERR_S_PRINCIPAL_UNKNOWN, report the server name
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19666
dc483132-0cff-0310-8789-
dd5450dbe970
Ken Raeburn [Wed, 4 Jul 2007 03:49:52 +0000 (03:49 +0000)]
In file-not-found case, report the filename sought
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19665
dc483132-0cff-0310-8789-
dd5450dbe970
Ken Raeburn [Wed, 4 Jul 2007 01:58:06 +0000 (01:58 +0000)]
Remove debugging message accidentally left in
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19664
dc483132-0cff-0310-8789-
dd5450dbe970
Ken Raeburn [Wed, 4 Jul 2007 01:49:17 +0000 (01:49 +0000)]
Save a detailed message for FCC_NOFILE including the file name
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19663
dc483132-0cff-0310-8789-
dd5450dbe970
Ken Raeburn [Wed, 4 Jul 2007 01:04:13 +0000 (01:04 +0000)]
When skipping debugging '-->' data, only take through the end of the line
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19662
dc483132-0cff-0310-8789-
dd5450dbe970
Ken Raeburn [Tue, 3 Jul 2007 22:51:53 +0000 (22:51 +0000)]
Report in make output when updating OBJS.ST/SH/PF
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19661
dc483132-0cff-0310-8789-
dd5450dbe970
Ken Raeburn [Tue, 3 Jul 2007 19:09:20 +0000 (19:09 +0000)]
Tell Emacs to use C mode for this file
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19660
dc483132-0cff-0310-8789-
dd5450dbe970
Ken Raeburn [Mon, 2 Jul 2007 19:13:05 +0000 (19:13 +0000)]
Test for va_copy should be a link test, not a compile test
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19659
dc483132-0cff-0310-8789-
dd5450dbe970
Ken Raeburn [Mon, 2 Jul 2007 19:11:53 +0000 (19:11 +0000)]
Include k5-platform.h
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19658
dc483132-0cff-0310-8789-
dd5450dbe970
Ken Raeburn [Fri, 29 Jun 2007 02:37:57 +0000 (02:37 +0000)]
Check for error indication from localtime.
In a few cases this means changing internal function signatures to
allow for passing back the error indication up the call stack.
Thanks to Domagoj Babic for pointing out the possible null pointer
dereferences that would result if localtime fails.
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19656
dc483132-0cff-0310-8789-
dd5450dbe970
Ken Raeburn [Fri, 29 Jun 2007 02:32:02 +0000 (02:32 +0000)]
Define a localtime_r wrapper around localtime if the system doesn't
provide localtime_r, instead of handling it in-line. Check for error
indication from localtime_r. Call localtime_r only once instead of
each time around the loop.
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19655
dc483132-0cff-0310-8789-
dd5450dbe970
Ken Raeburn [Fri, 29 Jun 2007 01:55:08 +0000 (01:55 +0000)]
Under gcc, declare k5_v?asprintf with format attribute
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19654
dc483132-0cff-0310-8789-
dd5450dbe970
Ken Raeburn [Fri, 29 Jun 2007 01:01:24 +0000 (01:01 +0000)]
Attach format attributes to declarations of various message-formatting
routines under gcc. In a couple of routines, hard-code the preference
for using the vsnprintf paths instead of list-of-int-arguments hacks
now that we're assuming vsnprintf is available in other places.
Installed headers affected:
com_err.h (com_err, com_err_va)
ss.h (ss_error)
krb5.h (krb5_set_error_message, krb5_vset_error_message)
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19653
dc483132-0cff-0310-8789-
dd5450dbe970
Ken Raeburn [Fri, 29 Jun 2007 00:31:10 +0000 (00:31 +0000)]
Even though the passed string never has a %, use an explicit %s format string in fprintf call to make analysis simpler
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19652
dc483132-0cff-0310-8789-
dd5450dbe970
Ken Raeburn [Fri, 29 Jun 2007 00:28:32 +0000 (00:28 +0000)]
Ignore __attribute__
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19651
dc483132-0cff-0310-8789-
dd5450dbe970
Ken Raeburn [Thu, 28 Jun 2007 23:36:51 +0000 (23:36 +0000)]
Check for null pointer returns when allocating storage.
Clean up some memory leaks in out-of-memory error paths.
Use strdup and asprintf when appropriate.
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19650
dc483132-0cff-0310-8789-
dd5450dbe970
Ken Raeburn [Thu, 28 Jun 2007 00:09:34 +0000 (00:09 +0000)]
Update mkstemp and export-list handling for Windows
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19646
dc483132-0cff-0310-8789-
dd5450dbe970
Ken Raeburn [Thu, 28 Jun 2007 00:08:21 +0000 (00:08 +0000)]
Implement S_ISDIR from S_IFMT or _S_IFMT if necessary (e.g., on Windows)
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19645
dc483132-0cff-0310-8789-
dd5450dbe970
Ken Raeburn [Wed, 27 Jun 2007 23:43:04 +0000 (23:43 +0000)]
For Win32 environment, define CAN_COPY_VA_LIST, and define an inline
version of vsnprintf using the MS versions. (Apparently no need for
plain snprintf just yet.)
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19644
dc483132-0cff-0310-8789-
dd5450dbe970
Ken Raeburn [Wed, 27 Jun 2007 23:22:36 +0000 (23:22 +0000)]
If mkstemp is missing, define the mkstemp macro is k5-platform.h, not autoconf.h
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19643
dc483132-0cff-0310-8789-
dd5450dbe970
Ken Raeburn [Tue, 26 Jun 2007 23:04:09 +0000 (23:04 +0000)]
* v4rcp.c (error): Use stdarg version always. Call vsnprintf instead of vsprintf.
(strsave): Call strdup.
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19642
dc483132-0cff-0310-8789-
dd5450dbe970
Ken Raeburn [Tue, 26 Jun 2007 22:58:46 +0000 (22:58 +0000)]
* v4rcp.c (kstream_write): Allocate buffer space if it hasn't been
allocated, in the encrypting case, even if outlen is zero. While I
don't believe this can ever happen, it requires careful examination of
lots of code paths to figure it out. This change doesn't fix a
serious bug, but makes the analysis simple. Also, don't bother with
separate code paths for malloc vs realloc depending on the previous
values; we can just use realloc always.
Thanks to Domagoj Babic for pointing out the (false but
understandable) null-pointer problem.
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19641
dc483132-0cff-0310-8789-
dd5450dbe970
Ken Raeburn [Tue, 26 Jun 2007 22:50:36 +0000 (22:50 +0000)]
Check malloc return for null in kstream_create_* instead of
unconditionally dereferencing. Thanks to Domagoj Babic for finding
the bug.
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19640
dc483132-0cff-0310-8789-
dd5450dbe970
Tom Yu [Tue, 26 Jun 2007 18:08:35 +0000 (18:08 +0000)]
fix MITKRB5-SA-2007-005 [CVE-2007-2798/VU#554257]
Truncate the principal names when logging a rename operation to avoid
a stack buffer overflow.
ticket: new
target_version: 1.6.2
tags: pullup
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19637
dc483132-0cff-0310-8789-
dd5450dbe970
Tom Yu [Tue, 26 Jun 2007 18:08:20 +0000 (18:08 +0000)]
fix MITKRB5-SA-2007-004 [CVE-2007-2442/VU#356961, CVE-2007-2443/VU#365313]
CVE-2007-2442/VU#356961: The RPC library can free an uninitialized
pointer. This may lead to execution of arbitrary code.
CVE-2007-2443/VU#365313: The RPC library can write past the end of a
stack buffer. This may (but is unlikely to) lead to execution of
arbitrary code.
ticket: new
target_version: 1.6.2
tags: pullup
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19636
dc483132-0cff-0310-8789-
dd5450dbe970
Jeffrey Altman [Fri, 22 Jun 2007 19:06:44 +0000 (19:06 +0000)]
Update configuration schema in ui\uiconfig.csv to include additional
documentation for settings and and remove unused values.
ticket: 5584
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19635
dc483132-0cff-0310-8789-
dd5450dbe970
Jeffrey Altman [Fri, 22 Jun 2007 19:05:44 +0000 (19:05 +0000)]
The new credentials window now applies Windows XP theme settings to
dialog panels that are hosted within tab controls.
ticket: 5584
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19634
dc483132-0cff-0310-8789-
dd5450dbe970
Jeffrey Altman [Fri, 22 Jun 2007 19:04:54 +0000 (19:04 +0000)]
1. Add a '--minimized' option to start NIM in minimized mode
2. If the NIM window is requested to open in a minimized state, keep
the window hidden until there's a request to show it.
ticket: 5584
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19633
dc483132-0cff-0310-8789-
dd5450dbe970
Jeffrey Altman [Fri, 22 Jun 2007 19:03:57 +0000 (19:03 +0000)]
1. Use the debug CRT versions of the memory allocation functions in
util\perfstat.c. These functions allow associating file and line
numbers with each allocation.
2. Perform a heap verification periodically to check for heap
corruption in the debug build when using util\perfstat.c to manage
memory allocations.
3. Change wcscmp() to _wcscmp() for compatibility in util\perfstat.h
ticket: 5584
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19632
dc483132-0cff-0310-8789-
dd5450dbe970
Jeffrey Altman [Fri, 22 Jun 2007 19:02:50 +0000 (19:02 +0000)]
1. Fix a malformed line in ui\lang\en_us\khapp.rc in a TEXTINCLUDE
section.
2. Update the dialog template for the "About" dialog to change the
size of the dialog box and sort the modules list.
ticket: 5584
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19631
dc483132-0cff-0310-8789-
dd5450dbe970
Jeffrey Altman [Fri, 22 Jun 2007 19:01:51 +0000 (19:01 +0000)]
NetIDMgr:
Product version => 1.3.0.0
API version => 9
ticket: 5584
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19630
dc483132-0cff-0310-8789-
dd5450dbe970
Jeffrey Altman [Fri, 22 Jun 2007 19:00:27 +0000 (19:00 +0000)]
Be more aggressive about forcing the new credentials dialog to the
top.
Many applications call GSSAPI functions from the main GUI thread.
Doing so blocks the window message pump for that application. When
the GSSAPI call results in the new credentials dialog being displayed,
it will be unable to bring itself to the top and grab the user input
focus because the foreground window is not responding. This patch
makes the new credentials window a top-most window at creation time
that results in it being created at the top of the Z-order. It can
then flash the window to indicate that it requires user attention.
ticket: 5584
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19629
dc483132-0cff-0310-8789-
dd5450dbe970
Jeffrey Altman [Fri, 22 Jun 2007 18:59:35 +0000 (18:59 +0000)]
If the new credentials window is in the advanced mode and the user
tries to switch back to basic mode, we should set the active panel to
the identity selector before switching since the basic mode only
supports the identity selector panel.
ticket: 5584
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19628
dc483132-0cff-0310-8789-
dd5450dbe970
Jeffrey Altman [Fri, 22 Jun 2007 18:58:09 +0000 (18:58 +0000)]
Don't assume that WM_DESTROY is the last message to be received by a
window. Since the child windows are still alive and kicking by the
time the parent receives WM_DESTROY, it's still possible to receive
other messages after WM_DESTROY.
If we free any window specific data when handling WM_DESTROY, we
should reset the window data field as well, and check if we have a
valid pointer when retrieving the window data field later.
ticket: 5584
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19627
dc483132-0cff-0310-8789-
dd5450dbe970
Jeffrey Altman [Fri, 22 Jun 2007 18:56:56 +0000 (18:56 +0000)]
The clean:: target of plugins\common\Makefile should reference the
target directories using the symbolic names rather than hard coded
paths.
ticket: 5584
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19626
dc483132-0cff-0310-8789-
dd5450dbe970
Jeffrey Altman [Fri, 22 Jun 2007 18:55:46 +0000 (18:55 +0000)]
1. When freeing a message type object, it should also be removed from
the all_msg_types list.
2. When a type handler is being removed from a message type, we
shouldn't re-create the message type object if it has already been
destroyed.
ticket: 5584
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19625
dc483132-0cff-0310-8789-
dd5450dbe970
Jeffrey Altman [Fri, 22 Jun 2007 18:54:49 +0000 (18:54 +0000)]
. Fix formatting in kherr.c
2. The FormatMessage() call needs special handling for 64 bit
platforms. Add a compile time check for now until we figure out
what to do.
3. Remove unused code from kherr.c.
4. Correct bad references to typedefs. kherr_severity and
kherr_suggestion were sometimes referenced as 'enum kherr_severity'
and 'enum kherr_suggestion' even though they are typedefs.
ticket: 5584
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19624
dc483132-0cff-0310-8789-
dd5450dbe970
Jeffrey Altman [Fri, 22 Jun 2007 18:53:45 +0000 (18:53 +0000)]
Add new notification flags KHERR_CTX_NEWCHILD, KHERR_CTX_FOLDCHILD,
KHERR_CTX_PROGRESS for listeners of error context events to enable
them to listen for child context events and progress updates.
ticket: 5584
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19623
dc483132-0cff-0310-8789-
dd5450dbe970
Jeffrey Altman [Fri, 22 Jun 2007 18:52:40 +0000 (18:52 +0000)]
Error context objects should be verified by checking the magic number
in addition to checking if the pointer to the object is valid.
ticket: 5584
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19622
dc483132-0cff-0310-8789-
dd5450dbe970
Jeffrey Altman [Fri, 22 Jun 2007 18:51:34 +0000 (18:51 +0000)]
Each error context in NIM can maintain a progress counter to indicate
the progress of the operation. The progress counter for a context
that contains child contexts should be computed by adding the progress
counters of its children. This update corrects the behavior of
kherr_get_progress() and kherr_get_progress_i() to take child contexts
into account.
In addition, since the progress counter of a context now depend on the
progress counters of its children, kherr_set_progress() will send
progress change notifications for any parent context as well.
ticket: 5584
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19621
dc483132-0cff-0310-8789-
dd5450dbe970
Jeffrey Altman [Fri, 22 Jun 2007 18:50:26 +0000 (18:50 +0000)]
Update developer documentation
These updates reflect changes that were made to the new credentials
acquisition process and add information to incomplete API
documentation.
ticket: 5584
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19620
dc483132-0cff-0310-8789-
dd5450dbe970
Jeffrey Altman [Fri, 22 Jun 2007 18:49:30 +0000 (18:49 +0000)]
Remove unused file Makefile.w2k from the uilib directory
ticket: 5584
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19619
dc483132-0cff-0310-8789-
dd5450dbe970
Jeffrey Altman [Fri, 22 Jun 2007 18:47:16 +0000 (18:47 +0000)]
All exports in nidmgr32.dll are declared as __declspec(dllexport)
using the KHMEXP macro in the header files. However, since the same
header files are used to declare imports when building applications
and plug-ins that use nidmgr32.dll, the KHMEXP macro should switch to
__declspec(import) so that the relevant import table entries are
created.
To make this switch, the source files that go into nidmgr32.dll are
compiled with the special macro _NIMLIB_ defined that indicates that
the KHMEXP should expand to __declspec(dllexport). In the absence of
this macro, KHMEXP will expand to __declspec(dllimport).
ticket: 5584
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19618
dc483132-0cff-0310-8789-
dd5450dbe970
Ken Raeburn [Wed, 20 Jun 2007 22:00:05 +0000 (22:00 +0000)]
Fix typo in yesterday's change (u_int_8_t -> u_int8_t)
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19609
dc483132-0cff-0310-8789-
dd5450dbe970
Ken Raeburn [Wed, 20 Jun 2007 06:54:59 +0000 (06:54 +0000)]
Fix typo and add verbosity in function-capable shell test
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19608
dc483132-0cff-0310-8789-
dd5450dbe970
Ken Raeburn [Wed, 20 Jun 2007 06:11:54 +0000 (06:11 +0000)]
Remove check-ac-syms rules
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19607
dc483132-0cff-0310-8789-
dd5450dbe970
Ken Raeburn [Wed, 20 Jun 2007 05:47:59 +0000 (05:47 +0000)]
Configure libdb2 in top-level configure script
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19606
dc483132-0cff-0310-8789-
dd5450dbe970
Ken Raeburn [Wed, 20 Jun 2007 05:18:59 +0000 (05:18 +0000)]
Add the libdb2 type-existence tests to the top-level configure script.
Replace the generated header files in db2 with static ones that
include autoconf.h and make decisions based on the macros defined
there. Omit some tests that test for things we assume now, like
"const" working and "size_t" being defined. Update dependencies.
The libdb2 configure script now generates no header files.
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19605
dc483132-0cff-0310-8789-
dd5450dbe970
Ken Raeburn [Wed, 20 Jun 2007 04:29:06 +0000 (04:29 +0000)]
Use k5-platform.h instead of local configure to find mkstemp
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19604
dc483132-0cff-0310-8789-
dd5450dbe970
Ken Raeburn [Wed, 20 Jun 2007 04:13:59 +0000 (04:13 +0000)]
Add 'make depend' capability, and dependencies
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19603
dc483132-0cff-0310-8789-
dd5450dbe970
Ken Raeburn [Wed, 20 Jun 2007 04:06:02 +0000 (04:06 +0000)]
We have code elsewhere that assumes the existence of memmove and
strerror, and it builds everywhere we care about. So punt the
substitute versions and everything else from libdb2/clib.
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19602
dc483132-0cff-0310-8789-
dd5450dbe970
Ken Raeburn [Wed, 20 Jun 2007 03:55:07 +0000 (03:55 +0000)]
update dependencies
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19601
dc483132-0cff-0310-8789-
dd5450dbe970
Ken Raeburn [Wed, 20 Jun 2007 03:53:37 +0000 (03:53 +0000)]
Move (BSD-licensed) mkstemp from libdb2 to libkrb5support, and rename
the function to krb5int_mkstemp. Generate the symbol export list for
libkrb5support at build time.
Declare krb5int_mkstemp in k5-platform.h.
Change cc_file.c to use mkstemp unconditionally.
Make libdb2.so (built for testing only) link against the
libkrb5support, and use krb5int_mkstemp if mkstemp is not available.
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19600
dc483132-0cff-0310-8789-
dd5450dbe970
Tom Yu [Wed, 20 Jun 2007 01:51:52 +0000 (01:51 +0000)]
initial draft contribution guidelines
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19599
dc483132-0cff-0310-8789-
dd5450dbe970
Ken Raeburn [Wed, 20 Jun 2007 01:19:59 +0000 (01:19 +0000)]
set svn:eol-style to native for *.[ch]
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19596
dc483132-0cff-0310-8789-
dd5450dbe970
Ken Raeburn [Wed, 20 Jun 2007 01:09:10 +0000 (01:09 +0000)]
provide asprintf functionality for internal use
I plan to use asprintf in some gssapi error-message management
routines, so let's make sure we have the functionality available,
implementing it locally if necessary.
This implementation assumes vsnprintf is available, an assumption that
the support library is already making at the moment.
Since this implementation requires calling vsnprintf potentially
multiple times with the same va_list, use va_copy if it's available,
or provide a hack version (which should work okay if va_list is a
scalar or array type that requires no other special handling, and if
va_end does nothing interesting, which is usually the case) if the
compiler doesn't provide it.
I also changed a couple bits of code to use asprintf, to make sure we
exercise our implementation in testing.
(C99 requires vsnprintf and va_copy; vasprintf is a GNU/BSD extension,
but an oh so useful one....)
* configure.in: Check for va_copy, or if va_list objects can be simply
assigned. Define HAS_VA_COPY and CAN_COPY_VA_LIST as appropriate.
* include/k5-platform.h: Define a va_copy macro if the compiler
doesn't provide it.
* include/k5-platform.h: If vsnprintf isn't available from the OS,
abort compilation. If vasprintf isn't available from the OS, provide
k5_{v,}asprintf based on vsnprintf and define {v,}asprintf macros.
* lib/krb5/keytab/t_keytab.c (do_test): Use asprintf.
* util/support/errors.c (krb5int_vset_error): Use asprintf
unconditionally.
ticket: new
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19595
dc483132-0cff-0310-8789-
dd5450dbe970
Ken Raeburn [Tue, 19 Jun 2007 23:45:48 +0000 (23:45 +0000)]
set eol-style and mime-type properties
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19594
dc483132-0cff-0310-8789-
dd5450dbe970
Tom Yu [Mon, 18 Jun 2007 21:07:37 +0000 (21:07 +0000)]
krb5_walk_realm_tree leaks in capaths case
Markus Moeller reports a leak in krb5_get_credentials() which was then
traced down to profile strings leaking from within
krb5_walk_realm_tree(). A pointer to a profile string was getting
overwritten without the string being freed when *cap_nodes[0] == '.'.
Fix is to free the string prior to overwriting the pointer if the
pointer is non-null.
ticket: new
target_version: 1.6.2
tags: pullup
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19582
dc483132-0cff-0310-8789-
dd5450dbe970
Jeffrey Altman [Mon, 18 Jun 2007 16:23:47 +0000 (16:23 +0000)]
Corrected the order of the source and modified msi packages
in the msitran command line used to produce the transform
ticket: 5577
tags: pullup
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19580
dc483132-0cff-0310-8789-
dd5450dbe970
Alexandra Ellwood [Thu, 14 Jun 2007 22:40:51 +0000 (22:40 +0000)]
don't include time.h in CredentialsCache.h if it's not needed
ticket: new
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19576
dc483132-0cff-0310-8789-
dd5450dbe970
Kevin Koch [Thu, 14 Jun 2007 18:18:03 +0000 (18:18 +0000)]
Disable warnings about #pragma mark - in the right place this time
TargetVersion: 1.7
Component: krb5-libs
Ticket: 19569
Subj: Tweaks for 1.7 build on Windows.
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19575
dc483132-0cff-0310-8789-
dd5450dbe970
Kevin Koch [Thu, 14 Jun 2007 17:38:11 +0000 (17:38 +0000)]
Disable warnings about #pragma mark
TargetVersion: 1.7
Component: krb5-libs
Ticket: 19569
Subj: Tweaks for 1.7 build on Windows.
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19574
dc483132-0cff-0310-8789-
dd5450dbe970
Alexandra Ellwood [Tue, 12 Jun 2007 21:07:16 +0000 (21:07 +0000)]
Add advisory locking to CCAPI
Added code to trash client crashes. Reorganized server launch to make
it easier to implement platform specific code.
ticket: new
status: open
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19573
dc483132-0cff-0310-8789-
dd5450dbe970
Jeffrey Altman [Mon, 11 Jun 2007 22:14:56 +0000 (22:14 +0000)]
This patch adds src/include/krb5/krb5.h to the MSI installer SDK component.
(Thanks to Asanka Herath for the patch.)
ticket: 5573
tags: pullup
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19572
dc483132-0cff-0310-8789-
dd5450dbe970
Alexandra Ellwood [Thu, 7 Jun 2007 21:50:39 +0000 (21:50 +0000)]
Removed cross-compilation uses of inline because they don't do
anything on our compilers and were interfering with the
Windows builds. If we need to we can revisit this later with
an actual profiling tool.
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19571
dc483132-0cff-0310-8789-
dd5450dbe970
Alexandra Ellwood [Thu, 7 Jun 2007 21:47:38 +0000 (21:47 +0000)]
Removed unused locking code
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19570
dc483132-0cff-0310-8789-
dd5450dbe970
Kevin Koch [Tue, 5 Jun 2007 20:22:37 +0000 (20:22 +0000)]
The #if _WIN32 block threw an error with Visual Studio 2005. Bumped the _MSC_VER threshold by 100
TargetVersion: 1.7
Component: krb5-libs
Ticket: new
Subj: Tweaks for 1.7 build on Windows.
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19569
dc483132-0cff-0310-8789-
dd5450dbe970
Alexandra Ellwood [Tue, 5 Jun 2007 20:09:22 +0000 (20:09 +0000)]
Only use __attribute__ on GNUC compilers
ticket: new
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19568
dc483132-0cff-0310-8789-
dd5450dbe970
Alexandra Ellwood [Mon, 4 Jun 2007 22:24:27 +0000 (22:24 +0000)]
Fixed bugs introduced while moving to krb5 repository
Fixed memory leak in ccs_ccache_t and ccs_cache_collection_t when returning
the reply data. Changed to "will_block" semantics for flow control in all
server function so it doesn't get confusing. Fixed bug in
ccs_server_send_reply() which was preventing ipc from working (was using
the wrong variable for the reply stream).
ticket:new
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19567
dc483132-0cff-0310-8789-
dd5450dbe970
Ken Raeburn [Thu, 31 May 2007 22:16:10 +0000 (22:16 +0000)]
Configure libkdb_ldap directory at top level
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19566
dc483132-0cff-0310-8789-
dd5450dbe970
Ken Raeburn [Thu, 31 May 2007 21:25:56 +0000 (21:25 +0000)]
Configure cksum_body and wpse in top-level configure script. (Still don't build by default.)
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19565
dc483132-0cff-0310-8789-
dd5450dbe970
Alexandra Ellwood [Thu, 31 May 2007 21:06:54 +0000 (21:06 +0000)]
Move CCAPI sources to krb5 repository
ticket: new
status: open
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19564
dc483132-0cff-0310-8789-
dd5450dbe970
Ken Raeburn [Thu, 31 May 2007 15:56:49 +0000 (15:56 +0000)]
don't check for readability resolving SRVTAB: keytab
Greg Hudson has pointed out that the FILE: and SRVTAB: keytab types differ in
when they report errors for files not existing. The implementations of ANY:
floating around cope better if they consistently accept names of files that
aren't present, and report the error later when fetching information.
ticket: new
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19563
dc483132-0cff-0310-8789-
dd5450dbe970
Ken Raeburn [Wed, 23 May 2007 20:03:53 +0000 (20:03 +0000)]
Remove unused macro
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19558
dc483132-0cff-0310-8789-
dd5450dbe970
Ken Raeburn [Wed, 23 May 2007 04:52:48 +0000 (04:52 +0000)]
Update dependencies
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19557
dc483132-0cff-0310-8789-
dd5450dbe970
Ken Raeburn [Wed, 23 May 2007 03:54:20 +0000 (03:54 +0000)]
On Solaris 10, define NO_WEAK_PTHREADS for the build. When that symbol is
defined, skip the weak and conditional references in k5-thread.h and always
use the real pthread functions.
ticket: 5560
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19556
dc483132-0cff-0310-8789-
dd5450dbe970
Ken Raeburn [Wed, 23 May 2007 03:32:08 +0000 (03:32 +0000)]
Fix up declarations of some static functions.
Now the eDirectory support compiles on Mac OS X 10.4.9 (but doesn't link
because "ldap_explode_dn" is not found).
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19555
dc483132-0cff-0310-8789-
dd5450dbe970
Ken Raeburn [Mon, 21 May 2007 21:58:24 +0000 (21:58 +0000)]
Change struct _krb5_context.os_context into a single element instead of array[1]
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19554
dc483132-0cff-0310-8789-
dd5450dbe970
Ken Raeburn [Mon, 21 May 2007 21:44:40 +0000 (21:44 +0000)]
Simplify UNIX krb5int_zap_data a little. Omit volatile cast, just call memset,
but for gcc, use a volatile asm afterwards to make the memory appear to be
referenced and deter optimizations that would remove the memset.
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19553
dc483132-0cff-0310-8789-
dd5450dbe970
Ken Raeburn [Fri, 18 May 2007 05:56:13 +0000 (05:56 +0000)]
Remove unused files
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19551
dc483132-0cff-0310-8789-
dd5450dbe970
Ken Raeburn [Fri, 18 May 2007 05:51:49 +0000 (05:51 +0000)]
Remove unused file
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19550
dc483132-0cff-0310-8789-
dd5450dbe970
Ken Raeburn [Thu, 10 May 2007 04:24:38 +0000 (04:24 +0000)]
Fix various gcc warnings about pointer target signedness and qualifiers
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19548
dc483132-0cff-0310-8789-
dd5450dbe970
Ken Raeburn [Thu, 10 May 2007 03:58:07 +0000 (03:58 +0000)]
Rewrite weak key check to use a small custom struct instead of wedging
data into krb5_data, and use the array size rather than a sentinel for
loop control.
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19547
dc483132-0cff-0310-8789-
dd5450dbe970
Ken Raeburn [Thu, 10 May 2007 03:52:05 +0000 (03:52 +0000)]
We're requiring that 'inline' work nowadays, so don't conditionalize its use
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19546
dc483132-0cff-0310-8789-
dd5450dbe970
Ken Raeburn [Thu, 10 May 2007 02:45:42 +0000 (02:45 +0000)]
Use new comparison inline fn
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19545
dc483132-0cff-0310-8789-
dd5450dbe970
Ken Raeburn [Thu, 10 May 2007 02:37:22 +0000 (02:37 +0000)]
Define and use some inline helper functions for comparing data and authdata structures, instead
of open-coding checks of multiple fields everywhere.
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19544
dc483132-0cff-0310-8789-
dd5450dbe970
Ken Raeburn [Thu, 10 May 2007 00:00:07 +0000 (00:00 +0000)]
Remove some unused macros
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19543
dc483132-0cff-0310-8789-
dd5450dbe970
Ken Raeburn [Mon, 7 May 2007 19:12:44 +0000 (19:12 +0000)]
Remove unused file
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19542
dc483132-0cff-0310-8789-
dd5450dbe970
Jeffrey Altman [Thu, 3 May 2007 22:57:05 +0000 (22:57 +0000)]
Modify WIX installer to better support upgrading betas
The WIX installers did not upgrade previous installations with the same
version number as the current package being installed. This would leave
multiple installations of KFW x.y.z registered as being installed on the
machine even though only the most recent install is being used.
This commit instructs the Windows Installer to uninstall previous installations
with the same version number (the Maximum Upgrade version) as the package
that is being installed while ensuring that the package being installed
will not be uninstalled if the installation is being modified or repaired.
ticket: new
component: windows
tags: pullup
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19541
dc483132-0cff-0310-8789-
dd5450dbe970
Jeffrey Altman [Wed, 2 May 2007 01:31:50 +0000 (01:31 +0000)]
k5-int.h, gic_opt.c
The krb5_get_init_creds_password() and krb5_get_init_creds_keytab()
functions permit the gic_opts parameter to be NULL. This is not
taken into account when testing the value with the macros
krb5_gic_opt_is_extended() and krb5_gic_opt_is_shadowed().
Nor is it taken into account within krb5int_gic_opte_copy() which
is called by krb5int_gic_opt_to_opte() when the input parameter is
not a krb5_gic_opt_ext structure.
This commit makes two changes:
(1) it modifies the macros to ensure that the value is non-NULL
before evaluation.
(2) it modifies krb5int_gic_opte_copy() to avoid copying the
original values with memcpy() when the input is NULL.
In addition, the code was audited to ensure that the flag
KRB5_GET_INIT_CREDS_OPT_SHADOWED is properly set and that when
it is set, that the allocated krb5_gic_opt_ext structure is
freed by krb5_get_init_creds_password() and
krb5_get_init_creds_keytab().
ticket: 5552
tags: pullup
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19537
dc483132-0cff-0310-8789-
dd5450dbe970
Sam Hartman [Sun, 29 Apr 2007 21:55:04 +0000 (21:55 +0000)]
rd_req_decoded needs to deal with referral realms
* Fix handling of null realm in krb5_rd_req_decoded; now we treat a
null realm as a default realm there, as we do in the keytab code.
ticket: new
Target_Version: 1.6.2
Tags: pullup
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19536
dc483132-0cff-0310-8789-
dd5450dbe970
Ken Raeburn [Fri, 27 Apr 2007 23:27:31 +0000 (23:27 +0000)]
Move the code for queueing an outgoing response on a TCP stream into a separate
function.
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19535
dc483132-0cff-0310-8789-
dd5450dbe970
Kevin Koch [Thu, 26 Apr 2007 13:02:32 +0000 (13:02 +0000)]
Look for unix find command in multiple places
Not tagged yet in case it should not go in 3.2.
Look for the unix find command in a list of directories instead of in only one place. This way Jeff can install cygwin in c:\tools\cygwin and Ken can have it in C:\cygwin. The two places in the list are for those two possibilities. c:\cygwin\bin and c:\tools\cygwin\bin.
Move some prints below where logging starts, so the messages will be in the log.
Ticket: new
Target_Version: 1.6.1
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19534
dc483132-0cff-0310-8789-
dd5450dbe970
Jeffrey Altman [Wed, 25 Apr 2007 22:55:58 +0000 (22:55 +0000)]
profile stores empty string values without double quotes
prof_parse.c (need_double_quotes):
The profile library will happily read in right hand values
that represent the empty string by parsing "". However,
when storing the same empty string back to a file, the
empty string is written without the double quotes.
This means that
[section] foo = ""
becomes
[section] foo =
which is invalid input. A subsequent attempt to parse the
profile will result in an invalid input error.
KFW and KFM's realm editors can inadvertently produce an
invalid krb5 profile if one of the ignored sections of the
input profile contains a right hand value that is "".
This patch was produced by Asanka Herath and it was reviewed
by jaltman and lxs.
ticket: new
tags: pullup
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19529
dc483132-0cff-0310-8789-
dd5450dbe970