aboutsummaryrefslogtreecommitdiff
path: root/src/lib/krb5/ccache/file
diff options
context:
space:
mode:
authorKeith Vetter <keithv@fusion.com>1995-03-08 01:04:08 +0000
committerKeith Vetter <keithv@fusion.com>1995-03-08 01:04:08 +0000
commit4f7713802fc75f1fe85255e94d4932b3bbb2de4f (patch)
tree2d768a46afc7a4b68d4fd4d30a5cfd9cdc141d87 /src/lib/krb5/ccache/file
parent731056fb3afd5f83f94f7ac48af049d39fed58e1 (diff)
downloadkrb5-4f7713802fc75f1fe85255e94d4932b3bbb2de4f.zip
krb5-4f7713802fc75f1fe85255e94d4932b3bbb2de4f.tar.gz
krb5-4f7713802fc75f1fe85255e94d4932b3bbb2de4f.tar.bz2
Ported the ccache directory to the PC. This is temporary--eventually we'll
use the in-memory solution from k4. git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@5081 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/lib/krb5/ccache/file')
-rw-r--r--src/lib/krb5/ccache/file/ChangeLog8
-rw-r--r--src/lib/krb5/ccache/file/Makefile.in17
-rw-r--r--src/lib/krb5/ccache/file/fcc-proto.h82
-rw-r--r--src/lib/krb5/ccache/file/fcc.h1
-rw-r--r--src/lib/krb5/ccache/file/fcc_close.c4
-rw-r--r--src/lib/krb5/ccache/file/fcc_defnam.c2
-rw-r--r--src/lib/krb5/ccache/file/fcc_destry.c29
-rw-r--r--src/lib/krb5/ccache/file/fcc_errs.c4
-rw-r--r--src/lib/krb5/ccache/file/fcc_eseq.c2
-rw-r--r--src/lib/krb5/ccache/file/fcc_gennew.c8
-rw-r--r--src/lib/krb5/ccache/file/fcc_getnam.c2
-rw-r--r--src/lib/krb5/ccache/file/fcc_gprin.c2
-rw-r--r--src/lib/krb5/ccache/file/fcc_init.c21
-rw-r--r--src/lib/krb5/ccache/file/fcc_maybe.c11
-rw-r--r--src/lib/krb5/ccache/file/fcc_nseq.c13
-rw-r--r--src/lib/krb5/ccache/file/fcc_read.c66
-rw-r--r--src/lib/krb5/ccache/file/fcc_reslv.c2
-rw-r--r--src/lib/krb5/ccache/file/fcc_retrv.c2
-rw-r--r--src/lib/krb5/ccache/file/fcc_sflags.c2
-rw-r--r--src/lib/krb5/ccache/file/fcc_skip.c2
-rw-r--r--src/lib/krb5/ccache/file/fcc_sseq.c14
-rw-r--r--src/lib/krb5/ccache/file/fcc_store.c2
-rw-r--r--src/lib/krb5/ccache/file/fcc_write.c40
23 files changed, 189 insertions, 147 deletions
diff --git a/src/lib/krb5/ccache/file/ChangeLog b/src/lib/krb5/ccache/file/ChangeLog
index 1d39f94..e360610 100644
--- a/src/lib/krb5/ccache/file/ChangeLog
+++ b/src/lib/krb5/ccache/file/ChangeLog
@@ -1,3 +1,11 @@
+Tue Mar 7 15:58:15 1995 Keith Vetter (keithv@fusion.com)
+
+ * fcc.h: alwas pull in low-level i/o stuff for the PC.
+ * *.c, fcc-proto.h: added windows INTERFACE keyword.
+ * fcc_dest.c, fcc_init.c, fcc_maybe.c, fcc_nseq.c, fcc_read.c,
+ fcc_sseq.c, fcc_write.c: fixed up some int/long and
+ signed/unsigned problems.
+
Tue Feb 28 00:35:55 1995 John Gilmore (gnu at toad.com)
* fcc.h, fcc_gennew.c, fcc_maybe.c: Avoid <krb5/...> includes.
diff --git a/src/lib/krb5/ccache/file/Makefile.in b/src/lib/krb5/ccache/file/Makefile.in
index 1650eb8..a310778 100644
--- a/src/lib/krb5/ccache/file/Makefile.in
+++ b/src/lib/krb5/ccache/file/Makefile.in
@@ -1,13 +1,17 @@
CFLAGS = $(CCOPTS) $(DEFS)
LDFLAGS = -g
-all:: $(OBJS)
+##DOSBUILDTOP = ..\..\..\..
+##DOSLIBNAME=..\..\krb5.lib
+##DOS!include $(BUILDTOP)\config\windows.in
-OBJS = fcc_close.o fcc_destry.o fcc_eseq.o \
- fcc_gennew.o fcc_getnam.o fcc_gprin.o fcc_init.o \
- fcc_nseq.o fcc_read.o fcc_reslv.o fcc_retrv.o \
- fcc_sseq.o fcc_store.o fcc_skip.o fcc_ops.o fcc_write.o \
- fcc_sflags.o fcc_defops.o fcc_errs.o fcc_maybe.o
+OBJS = fcc_close.$(OBJEXT) fcc_destry.$(OBJEXT) fcc_eseq.$(OBJEXT) \
+ fcc_gennew.$(OBJEXT) fcc_getnam.$(OBJEXT) fcc_gprin.$(OBJEXT) \
+ fcc_init.$(OBJEXT) fcc_nseq.$(OBJEXT) fcc_read.$(OBJEXT) \
+ fcc_reslv.$(OBJEXT) fcc_retrv.$(OBJEXT) fcc_sseq.$(OBJEXT) \
+ fcc_store.$(OBJEXT) fcc_skip.$(OBJEXT) fcc_ops.$(OBJEXT) \
+ fcc_write.$(OBJEXT) fcc_sflags.$(OBJEXT) fcc_defops.$(OBJEXT) \
+ fcc_errs.$(OBJEXT) fcc_maybe.$(OBJEXT)
SRCS = $(srcdir)/fcc_close.c $(srcdir)/fcc_destry.c $(srcdir)/fcc_eseq.c \
$(srcdir)/fcc_gennew.c $(srcdir)/fcc_getnam.c $(srcdir)/fcc_gprin.c \
@@ -17,4 +21,5 @@ SRCS = $(srcdir)/fcc_close.c $(srcdir)/fcc_destry.c $(srcdir)/fcc_eseq.c \
$(srcdir)/fcc_write.c $(srcdir)/fcc_sflags.c $(srcdir)/fcc_defops.c \
$(srcdir)/fcc_errs.c $(srcdir)/fcc_maybe.c
+all:: $(OBJS)
diff --git a/src/lib/krb5/ccache/file/fcc-proto.h b/src/lib/krb5/ccache/file/fcc-proto.h
index e7bee70..26c6059 100644
--- a/src/lib/krb5/ccache/file/fcc-proto.h
+++ b/src/lib/krb5/ccache/file/fcc-proto.h
@@ -29,74 +29,74 @@
#define KRB5_FCC_PROTO__
/* fcc_close.c */
-krb5_error_code krb5_fcc_close
+krb5_error_code INTERFACE krb5_fcc_close
PROTOTYPE((krb5_context, krb5_ccache id ));
/* fcc_defnam.c */
-char *krb5_fcc_default_name
+char * INTERFACE krb5_fcc_default_name
PROTOTYPE((krb5_context));
/* fcc_destry.c */
-krb5_error_code krb5_fcc_destroy
+krb5_error_code INTERFACE krb5_fcc_destroy
PROTOTYPE((krb5_context, krb5_ccache id ));
/* fcc_eseq.c */
-krb5_error_code krb5_fcc_end_seq_get
+krb5_error_code INTERFACE krb5_fcc_end_seq_get
PROTOTYPE((krb5_context, krb5_ccache id , krb5_cc_cursor *cursor ));
/* fcc_gennew.c */
-krb5_error_code krb5_fcc_generate_new
+krb5_error_code INTERFACE krb5_fcc_generate_new
PROTOTYPE((krb5_context, krb5_ccache *id ));
/* fcc_getnam.c */
-char *krb5_fcc_get_name
+char * INTERFACE krb5_fcc_get_name
PROTOTYPE((krb5_context, krb5_ccache id ));
/* fcc_gprin.c */
-krb5_error_code krb5_fcc_get_principal
+krb5_error_code INTERFACE krb5_fcc_get_principal
PROTOTYPE((krb5_context, krb5_ccache id , krb5_principal *princ ));
/* fcc_init.c */
-krb5_error_code krb5_fcc_initialize
+krb5_error_code INTERFACE krb5_fcc_initialize
PROTOTYPE((krb5_context, krb5_ccache id , krb5_principal princ ));
/* fcc_nseq.c */
-krb5_error_code krb5_fcc_next_cred
+krb5_error_code INTERFACE krb5_fcc_next_cred
PROTOTYPE((krb5_context,
krb5_ccache id ,
krb5_cc_cursor *cursor ,
krb5_creds *creds ));
/* fcc_read.c */
-krb5_error_code krb5_fcc_read_principal
+krb5_error_code INTERFACE krb5_fcc_read_principal
PROTOTYPE((krb5_context, krb5_ccache id , krb5_principal *princ ));
-krb5_error_code krb5_fcc_read_keyblock
+krb5_error_code INTERFACE krb5_fcc_read_keyblock
PROTOTYPE((krb5_context, krb5_ccache id , krb5_keyblock *keyblock ));
-krb5_error_code krb5_fcc_read_data
+krb5_error_code INTERFACE krb5_fcc_read_data
PROTOTYPE((krb5_context, krb5_ccache id , krb5_data *data ));
-krb5_error_code krb5_fcc_read_int32
+krb5_error_code INTERFACE krb5_fcc_read_int32
PROTOTYPE((krb5_context, krb5_ccache id , krb5_int32 *i ));
-krb5_error_code krb5_fcc_read_ui_2
+krb5_error_code INTERFACE krb5_fcc_read_ui_2
PROTOTYPE((krb5_context, krb5_ccache id , krb5_ui_2 *i ));
-krb5_error_code krb5_fcc_read_octet
+krb5_error_code INTERFACE krb5_fcc_read_octet
PROTOTYPE((krb5_context, krb5_ccache id , krb5_octet *i ));
-krb5_error_code krb5_fcc_read_times
+krb5_error_code INTERFACE krb5_fcc_read_times
PROTOTYPE((krb5_context, krb5_ccache id , krb5_ticket_times *t ));
-krb5_error_code krb5_fcc_read_addrs
+krb5_error_code INTERFACE krb5_fcc_read_addrs
PROTOTYPE((krb5_context, krb5_ccache, krb5_address ***));
-krb5_error_code krb5_fcc_read_addr
+krb5_error_code INTERFACE krb5_fcc_read_addr
PROTOTYPE((krb5_context, krb5_ccache, krb5_address *));
-krb5_error_code krb5_fcc_read_authdata
+krb5_error_code INTERFACE krb5_fcc_read_authdata
PROTOTYPE((krb5_context, krb5_ccache , krb5_authdata ***));
-krb5_error_code krb5_fcc_read_authdatum
+krb5_error_code INTERFACE krb5_fcc_read_authdatum
PROTOTYPE((krb5_context, krb5_ccache , krb5_authdata *));
/* fcc_reslv.c */
-krb5_error_code krb5_fcc_resolve
+krb5_error_code INTERFACE krb5_fcc_resolve
PROTOTYPE((krb5_context, krb5_ccache *id , char *residual ));
/* fcc_retrv.c */
-krb5_error_code krb5_fcc_retrieve
+krb5_error_code INTERFACE krb5_fcc_retrieve
PROTOTYPE((krb5_context,
krb5_ccache id ,
krb5_flags whichfields ,
@@ -104,58 +104,58 @@ krb5_error_code krb5_fcc_retrieve
krb5_creds *creds ));
/* fcc_sseq.c */
-krb5_error_code krb5_fcc_start_seq_get
+krb5_error_code INTERFACE krb5_fcc_start_seq_get
PROTOTYPE((krb5_context, krb5_ccache id , krb5_cc_cursor *cursor ));
/* fcc_store.c */
-krb5_error_code krb5_fcc_store
+krb5_error_code INTERFACE krb5_fcc_store
PROTOTYPE((krb5_context, krb5_ccache id , krb5_creds *creds ));
/* fcc_skip.c */
-krb5_error_code krb5_fcc_skip_principal
+krb5_error_code INTERFACE krb5_fcc_skip_principal
PROTOTYPE((krb5_context, krb5_ccache id ));
/* fcc_sflags.c */
-krb5_error_code krb5_fcc_set_flags
+krb5_error_code INTERFACE krb5_fcc_set_flags
PROTOTYPE((krb5_context, krb5_ccache id , krb5_flags flags ));
/* fcc_ops.c */
extern krb5_cc_ops krb5_cc_file_ops;
/* fcc_write.c */
-krb5_error_code krb5_fcc_write
+krb5_error_code INTERFACE krb5_fcc_write
PROTOTYPE((krb5_context, krb5_ccache id , krb5_pointer buf , int len ));
-krb5_error_code krb5_fcc_store_principal
+krb5_error_code INTERFACE krb5_fcc_store_principal
PROTOTYPE((krb5_context, krb5_ccache id , krb5_principal princ ));
-krb5_error_code krb5_fcc_store_keyblock
+krb5_error_code INTERFACE krb5_fcc_store_keyblock
PROTOTYPE((krb5_context, krb5_ccache id , krb5_keyblock *keyblock ));
-krb5_error_code krb5_fcc_store_data
+krb5_error_code INTERFACE krb5_fcc_store_data
PROTOTYPE((krb5_context, krb5_ccache id , krb5_data *data ));
-krb5_error_code krb5_fcc_store_int32
+krb5_error_code INTERFACE krb5_fcc_store_int32
PROTOTYPE((krb5_context, krb5_ccache id , krb5_int32 i ));
-krb5_error_code krb5_fcc_store_ui_2
+krb5_error_code INTERFACE krb5_fcc_store_ui_2
PROTOTYPE((krb5_context, krb5_ccache id , krb5_int32 i ));
-krb5_error_code krb5_fcc_store_octet
+krb5_error_code INTERFACE krb5_fcc_store_octet
PROTOTYPE((krb5_context, krb5_ccache id , krb5_int32 i ));
-krb5_error_code krb5_fcc_store_times
+krb5_error_code INTERFACE krb5_fcc_store_times
PROTOTYPE((krb5_context, krb5_ccache id , krb5_ticket_times *t ));
-krb5_error_code krb5_fcc_store_addrs
+krb5_error_code INTERFACE krb5_fcc_store_addrs
PROTOTYPE((krb5_context, krb5_ccache , krb5_address ** ));
-krb5_error_code krb5_fcc_store_addr
+krb5_error_code INTERFACE krb5_fcc_store_addr
PROTOTYPE((krb5_context, krb5_ccache , krb5_address * ));
-krb5_error_code krb5_fcc_store_authdata
+krb5_error_code INTERFACE krb5_fcc_store_authdata
PROTOTYPE((krb5_context, krb5_ccache , krb5_authdata **));
-krb5_error_code krb5_fcc_store_authdatum
+krb5_error_code INTERFACE krb5_fcc_store_authdatum
PROTOTYPE((krb5_context, krb5_ccache , krb5_authdata *));
/* fcc_errs.c */
-krb5_error_code krb5_fcc_interpret
+krb5_error_code INTERFACE krb5_fcc_interpret
PROTOTYPE((krb5_context, int ));
/* fcc_maybe.c */
-krb5_error_code krb5_fcc_close_file
+krb5_error_code INTERFACE krb5_fcc_close_file
PROTOTYPE((krb5_context, krb5_ccache));
-krb5_error_code krb5_fcc_open_file
+krb5_error_code INTERFACE krb5_fcc_open_file
PROTOTYPE((krb5_context, krb5_ccache, int));
#endif /* KRB5_FCC_PROTO__ */
diff --git a/src/lib/krb5/ccache/file/fcc.h b/src/lib/krb5/ccache/file/fcc.h
index 83686c5..6b7c1b8 100644
--- a/src/lib/krb5/ccache/file/fcc.h
+++ b/src/lib/krb5/ccache/file/fcc.h
@@ -28,6 +28,7 @@
#ifndef __KRB5_FILE_CCACHE__
#define __KRB5_FILE_CCACHE__
+#define NEED_LOWLEVEL_IO
#include "k5-int.h"
#include "fcc-proto.h"
#include <stdio.h>
diff --git a/src/lib/krb5/ccache/file/fcc_close.c b/src/lib/krb5/ccache/file/fcc_close.c
index d59516e..4c549aa 100644
--- a/src/lib/krb5/ccache/file/fcc_close.c
+++ b/src/lib/krb5/ccache/file/fcc_close.c
@@ -27,7 +27,7 @@
#include "fcc.h"
-
+#include <malloc.h>
/*
* Modifies:
* id
@@ -36,7 +36,7 @@
* Closes the file cache, invalidates the id, and frees any resources
* associated with the cache.
*/
-krb5_error_code
+krb5_error_code INTERFACE
krb5_fcc_close(context, id)
krb5_context context;
krb5_ccache id;
diff --git a/src/lib/krb5/ccache/file/fcc_defnam.c b/src/lib/krb5/ccache/file/fcc_defnam.c
index 5926aca..1982b37 100644
--- a/src/lib/krb5/ccache/file/fcc_defnam.c
+++ b/src/lib/krb5/ccache/file/fcc_defnam.c
@@ -48,7 +48,7 @@ static char krb5_default_name_string[KRB5_FCC_MAXLEN] = "";
* returned is to static storage; the name must be copied elsewhere.
*/
-char *
+char * INTERFACE
krb5_fcc_default_name (context)
krb5_context context;
{
diff --git a/src/lib/krb5/ccache/file/fcc_destry.c b/src/lib/krb5/ccache/file/fcc_destry.c
index 9fb13f6..ad8dbcc 100644
--- a/src/lib/krb5/ccache/file/fcc_destry.c
+++ b/src/lib/krb5/ccache/file/fcc_destry.c
@@ -24,7 +24,6 @@
* This file contains the source code for krb5_fcc_destroy.
*/
-
#include <errno.h>
#include "fcc.h"
@@ -35,19 +34,23 @@
* Errors:
* system errors
*/
-krb5_error_code krb5_fcc_destroy(context, id)
+krb5_error_code INTERFACE
+krb5_fcc_destroy(context, id)
krb5_context context;
krb5_ccache id;
{
struct stat buf;
- unsigned long size;
+ unsigned long i, size;
+ unsigned int wlen;
char zeros[BUFSIZ];
- register int ret, i;
+ register int ret;
+ krb5_error_code kret;
+
if (OPENCLOSE(id)) {
ret = open(((krb5_fcc_data *) id->data)->filename, O_RDWR, 0);
if (ret < 0) {
- ret = krb5_fcc_interpret(context, errno);
+ kret = krb5_fcc_interpret(context, errno);
goto cleanup;
}
((krb5_fcc_data *) id->data)->fd = ret;
@@ -57,17 +60,18 @@ krb5_error_code krb5_fcc_destroy(context, id)
ret = unlink(((krb5_fcc_data *) id->data)->filename);
if (ret < 0) {
- ret = krb5_fcc_interpret(context, errno);
+ kret = krb5_fcc_interpret(context, errno);
if (OPENCLOSE(id)) {
(void) close(((krb5_fcc_data *)id->data)->fd);
((krb5_fcc_data *) id->data)->fd = -1;
+ kret = ret;
}
goto cleanup;
}
ret = fstat(((krb5_fcc_data *) id->data)->fd, &buf);
if (ret < 0) {
- ret = krb5_fcc_interpret(context, errno);
+ kret = krb5_fcc_interpret(context, errno);
if (OPENCLOSE(id)) {
(void) close(((krb5_fcc_data *)id->data)->fd);
((krb5_fcc_data *) id->data)->fd = -1;
@@ -81,7 +85,7 @@ krb5_error_code krb5_fcc_destroy(context, id)
memset(zeros, 0, BUFSIZ);
for (i=0; i < size / BUFSIZ; i++)
if (write(((krb5_fcc_data *) id->data)->fd, zeros, BUFSIZ) < 0) {
- ret = krb5_fcc_interpret(context, errno);
+ kret = krb5_fcc_interpret(context, errno);
if (OPENCLOSE(id)) {
(void) close(((krb5_fcc_data *)id->data)->fd);
((krb5_fcc_data *) id->data)->fd = -1;
@@ -89,8 +93,9 @@ krb5_error_code krb5_fcc_destroy(context, id)
goto cleanup;
}
- if (write(((krb5_fcc_data *) id->data)->fd, zeros, size % BUFSIZ) < 0) {
- ret = krb5_fcc_interpret(context, errno);
+ wlen = (unsigned int) (size % BUFSIZ);
+ if (write(((krb5_fcc_data *) id->data)->fd, zeros, wlen) < 0) {
+ kret = krb5_fcc_interpret(context, errno);
if (OPENCLOSE(id)) {
(void) close(((krb5_fcc_data *)id->data)->fd);
((krb5_fcc_data *) id->data)->fd = -1;
@@ -102,12 +107,12 @@ krb5_error_code krb5_fcc_destroy(context, id)
((krb5_fcc_data *) id->data)->fd = -1;
if (ret)
- ret = krb5_fcc_interpret(context, errno);
+ kret = krb5_fcc_interpret(context, errno);
cleanup:
krb5_xfree(((krb5_fcc_data *) id->data)->filename);
krb5_xfree(id->data);
krb5_xfree(id);
- return ret;
+ return kret;
}
diff --git a/src/lib/krb5/ccache/file/fcc_errs.c b/src/lib/krb5/ccache/file/fcc_errs.c
index 8a4834a..43d8525 100644
--- a/src/lib/krb5/ccache/file/fcc_errs.c
+++ b/src/lib/krb5/ccache/file/fcc_errs.c
@@ -28,12 +28,12 @@
#include "fcc.h"
-krb5_error_code
+krb5_error_code INTERFACE
krb5_fcc_interpret(context, errnum)
krb5_context context;
int errnum;
{
- register int retval;
+ register krb5_error_code retval;
switch (errnum) {
case ENOENT:
retval = KRB5_FCC_NOFILE;
diff --git a/src/lib/krb5/ccache/file/fcc_eseq.c b/src/lib/krb5/ccache/file/fcc_eseq.c
index d2b5f1f..d888aa9 100644
--- a/src/lib/krb5/ccache/file/fcc_eseq.c
+++ b/src/lib/krb5/ccache/file/fcc_eseq.c
@@ -40,7 +40,7 @@
* and invalidates the cursor (it must never be used after this call).
*/
/* ARGSUSED */
-krb5_error_code
+krb5_error_code INTERFACE
krb5_fcc_end_seq_get(context, id, cursor)
krb5_context context;
krb5_ccache id;
diff --git a/src/lib/krb5/ccache/file/fcc_gennew.c b/src/lib/krb5/ccache/file/fcc_gennew.c
index 099e400..5078933 100644
--- a/src/lib/krb5/ccache/file/fcc_gennew.c
+++ b/src/lib/krb5/ccache/file/fcc_gennew.c
@@ -24,13 +24,15 @@
* This file contains the source code for krb5_fcc_generate_new.
*/
-
+#define NEED_SOCKETS
#include <errno.h>
-#include "k5-int.h"
#include "fcc.h"
+#include "k5-int.h"
#ifdef KRB5_USE_INET
+#ifndef _WINSOCKAPI_
#include <netinet/in.h>
+#endif
#else
#error find some way to use net-byte-order file version numbers.
#endif
@@ -51,7 +53,7 @@ extern krb5_cc_ops krb5_fcc_ops;
* krb5_ccache. id is undefined.
* system errors (from open)
*/
-krb5_error_code
+krb5_error_code INTERFACE
krb5_fcc_generate_new (context, id)
krb5_context context;
krb5_ccache *id;
diff --git a/src/lib/krb5/ccache/file/fcc_getnam.c b/src/lib/krb5/ccache/file/fcc_getnam.c
index f3357f1..8422ff6 100644
--- a/src/lib/krb5/ccache/file/fcc_getnam.c
+++ b/src/lib/krb5/ccache/file/fcc_getnam.c
@@ -35,7 +35,7 @@
* Returns:
* The name of the file cred cache id.
*/
-char *
+char * INTERFACE
krb5_fcc_get_name (context, id)
krb5_context context;
krb5_ccache id;
diff --git a/src/lib/krb5/ccache/file/fcc_gprin.c b/src/lib/krb5/ccache/file/fcc_gprin.c
index a97abd6..fbd35ff 100644
--- a/src/lib/krb5/ccache/file/fcc_gprin.c
+++ b/src/lib/krb5/ccache/file/fcc_gprin.c
@@ -40,7 +40,7 @@
* system errors
* KRB5_CC_NOMEM
*/
-krb5_error_code
+krb5_error_code INTERFACE
krb5_fcc_get_principal(context, id, princ)
krb5_context context;
krb5_ccache id;
diff --git a/src/lib/krb5/ccache/file/fcc_init.c b/src/lib/krb5/ccache/file/fcc_init.c
index fffc09a..c78d416 100644
--- a/src/lib/krb5/ccache/file/fcc_init.c
+++ b/src/lib/krb5/ccache/file/fcc_init.c
@@ -40,30 +40,31 @@
* system errors
* permission errors
*/
-krb5_error_code
+krb5_error_code INTERFACE
krb5_fcc_initialize(context, id, princ)
krb5_context context;
krb5_ccache id;
krb5_principal princ;
{
- int ret = KRB5_OK;
+ krb5_error_code kret;
+ int reti;
MAYBE_OPEN(context, id, FCC_OPEN_AND_ERASE);
#ifdef NOFCHMOD
- ret = chmod(((krb5_fcc_data *) id->data)->filename, S_IREAD | S_IWRITE);
+ reti = chmod(((krb5_fcc_data *) id->data)->filename, S_IREAD | S_IWRITE);
#else
- ret = fchmod(((krb5_fcc_data *) id->data)->fd, S_IREAD | S_IWRITE);
+ reti = fchmod(((krb5_fcc_data *) id->data)->fd, S_IREAD | S_IWRITE);
#endif
- if (ret == -1) {
- ret = krb5_fcc_interpret(context, errno);
- MAYBE_CLOSE(context, id, ret);
- return ret;
+ if (reti == -1) {
+ kret = krb5_fcc_interpret(context, errno);
+ MAYBE_CLOSE(context, id, kret);
+ return kret;
}
krb5_fcc_store_principal(context, id, princ);
- MAYBE_CLOSE(context, id, ret);
- return ret;
+ MAYBE_CLOSE(context, id, kret);
+ return kret;
}
diff --git a/src/lib/krb5/ccache/file/fcc_maybe.c b/src/lib/krb5/ccache/file/fcc_maybe.c
index 1c4c729..274c651 100644
--- a/src/lib/krb5/ccache/file/fcc_maybe.c
+++ b/src/lib/krb5/ccache/file/fcc_maybe.c
@@ -24,6 +24,7 @@
* This file contains the source code for conditional open/close calls.
*/
+#define NEED_SOCKETS /* Only for ntohs, etc. */
#if HAVE_UNISTD_H
#include <unistd.h>
#endif
@@ -35,7 +36,9 @@
int krb5_fcc_default_format = KRB5_FCC_DEFAULT_FVNO;
#ifdef KRB5_USE_INET
+#ifndef _WINSOCKAPI_
#include <netinet/in.h>
+#endif
#else
#error find some way to use net-byte-order file version numbers.
#endif
@@ -156,7 +159,7 @@ int lockunlock;
#undef EXCLUSIVE_LOCK
#undef UNLOCK_LOCK
-#endif HAVE_FLOCK
+#endif /* HAVE_FLOCK */
static krb5_error_code fcc_lock_file PROTOTYPE((krb5_fcc_data *, int, int));
static krb5_error_code
@@ -180,7 +183,7 @@ int lockunlock;
#endif
}
-krb5_error_code
+krb5_error_code INTERFACE
krb5_fcc_close_file (context, id)
krb5_context context;
krb5_ccache id;
@@ -201,14 +204,14 @@ krb5_fcc_close_file (context, id)
return (ret == -1) ? krb5_fcc_interpret (context, errno) : 0;
}
-krb5_error_code
+krb5_error_code INTERFACE
krb5_fcc_open_file (context, id, mode)
krb5_context context;
krb5_ccache id;
int mode;
{
krb5_fcc_data *data = (krb5_fcc_data *)id->data;
- krb5_int16 fcc_fvno;
+ krb5_ui_2 fcc_fvno;
int fd;
int open_flag;
krb5_error_code retval;
diff --git a/src/lib/krb5/ccache/file/fcc_nseq.c b/src/lib/krb5/ccache/file/fcc_nseq.c
index 1a85acd..96650ac 100644
--- a/src/lib/krb5/ccache/file/fcc_nseq.c
+++ b/src/lib/krb5/ccache/file/fcc_nseq.c
@@ -48,7 +48,7 @@
* Errors:
* system errors
*/
-krb5_error_code
+krb5_error_code INTERFACE
krb5_fcc_next_cred(context, id, cursor, creds)
krb5_context context;
krb5_ccache id;
@@ -56,7 +56,6 @@ krb5_fcc_next_cred(context, id, cursor, creds)
krb5_creds *creds;
{
#define TCHECK(ret) if (ret != KRB5_OK) goto lose;
- int ret;
krb5_error_code kret;
krb5_fcc_cursor *fcursor;
krb5_int32 int32;
@@ -68,11 +67,11 @@ krb5_fcc_next_cred(context, id, cursor, creds)
fcursor = (krb5_fcc_cursor *) *cursor;
- ret = lseek(((krb5_fcc_data *) id->data)->fd, fcursor->pos, SEEK_SET);
- if (ret < 0) {
- ret = krb5_fcc_interpret(context, errno);
- MAYBE_CLOSE(context, id, ret);
- return ret;
+ kret = lseek(((krb5_fcc_data *) id->data)->fd, fcursor->pos, SEEK_SET);
+ if (kret < 0) {
+ kret = krb5_fcc_interpret(context, errno);
+ MAYBE_CLOSE(context, id, kret);
+ return kret;
}
kret = krb5_fcc_read_principal(context, id, &creds->client);
diff --git a/src/lib/krb5/ccache/file/fcc_read.c b/src/lib/krb5/ccache/file/fcc_read.c
index 0ff983a..bf4c871 100644
--- a/src/lib/krb5/ccache/file/fcc_read.c
+++ b/src/lib/krb5/ccache/file/fcc_read.c
@@ -40,7 +40,7 @@
* KRB5_CC_END - there were not len bytes available
* system errors (read)
*/
-krb5_error_code
+krb5_error_code INTERFACE
krb5_fcc_read(context, id, buf, len)
krb5_context context;
krb5_ccache id;
@@ -75,7 +75,7 @@ krb5_fcc_read(context, id, buf, len)
* KRB5_CC_NOMEM
*/
-krb5_error_code
+krb5_error_code INTERFACE
krb5_fcc_read_principal(context, id, princ)
krb5_context context;
krb5_ccache id;
@@ -84,7 +84,7 @@ krb5_fcc_read_principal(context, id, princ)
krb5_fcc_data *data = (krb5_fcc_data *)id->data;
krb5_error_code kret;
register krb5_principal tmpprinc;
- krb5_int32 length, type;
+ krb5_int32 length, type, msize;
int i;
if (data->version == KRB5_FCC_FVNO_1) {
@@ -112,8 +112,11 @@ krb5_fcc_read_principal(context, id, princ)
if (tmpprinc == NULL)
return KRB5_CC_NOMEM;
if (length) {
- tmpprinc->data = (krb5_data *) malloc(length * sizeof(krb5_data));
- if (tmpprinc->data == 0) {
+ tmpprinc->data = 0;
+ msize = length * sizeof(krb5_data);
+ if ((msize & VALID_UINT_BITS) == msize) /* Not overflow size_t */
+ tmpprinc->data = (krb5_data *) malloc((size_t) msize);
+ if (tmpprinc->data == (krb5_data *) 0) {
free((char *)tmpprinc);
return KRB5_CC_NOMEM;
}
@@ -143,14 +146,14 @@ krb5_fcc_read_principal(context, id, princ)
return kret;
}
-krb5_error_code
+krb5_error_code INTERFACE
krb5_fcc_read_addrs(context, id, addrs)
krb5_context context;
krb5_ccache id;
krb5_address ***addrs;
{
krb5_error_code kret;
- krb5_int32 length;
+ krb5_int32 length, msize;
int i;
*addrs = 0;
@@ -162,7 +165,10 @@ krb5_fcc_read_addrs(context, id, addrs)
/* Make *addrs able to hold length pointers to krb5_address structs
* Add one extra for a null-terminated list
*/
- *addrs = (krb5_address **) calloc(length+1, sizeof(krb5_address *));
+ msize = length+1;
+ if ((msize & VALID_UINT_BITS) != msize) /* Overflow size_t??? */
+ return KRB5_CC_NOMEM;
+ *addrs = (krb5_address **) calloc((size_t) msize, sizeof(krb5_address *));
if (*addrs == NULL)
return KRB5_CC_NOMEM;
@@ -183,7 +189,7 @@ krb5_fcc_read_addrs(context, id, addrs)
return kret;
}
-krb5_error_code
+krb5_error_code INTERFACE
krb5_fcc_read_keyblock(context, id, keyblock)
krb5_context context;
krb5_ccache id;
@@ -211,7 +217,9 @@ krb5_fcc_read_keyblock(context, id, keyblock)
kret = krb5_fcc_read_int32(context, id, &int32);
CHECK(kret);
- keyblock->length = int32;
+ if ((int32 & VALID_INT_BITS) != int32) /* Overflow size_t??? */
+ return KRB5_CC_NOMEM;
+ keyblock->length = (int) int32;
if ( keyblock->length == 0 )
return KRB5_OK;
keyblock->contents = (unsigned char *) malloc(keyblock->length*
@@ -230,19 +238,23 @@ krb5_fcc_read_keyblock(context, id, keyblock)
return kret;
}
-krb5_error_code
+krb5_error_code INTERFACE
krb5_fcc_read_data(context, id, data)
krb5_context context;
krb5_ccache id;
krb5_data *data;
{
krb5_error_code kret;
+ krb5_int32 len;
data->magic = KV5M_DATA;
data->data = 0;
- kret = krb5_fcc_read_int32(context, id, &data->length);
+ kret = krb5_fcc_read_int32(context, id, &len);
CHECK(kret);
+ if ((len & VALID_INT_BITS) != len)
+ return KRB5_CC_NOMEM;
+ data->length = (int) len;
if (data->length == 0) {
data->data = 0;
@@ -264,7 +276,7 @@ krb5_fcc_read_data(context, id, data)
return kret;
}
-krb5_error_code
+krb5_error_code INTERFACE
krb5_fcc_read_addr(context, id, addr)
krb5_context context;
krb5_ccache id;
@@ -283,7 +295,9 @@ krb5_fcc_read_addr(context, id, addr)
kret = krb5_fcc_read_int32(context, id, &int32);
CHECK(kret);
- addr->length = int32;
+ if ((int32 & VALID_INT_BITS) != int32) /* Overflow int??? */
+ return KRB5_CC_NOMEM;
+ addr->length = (int) int32;
if (addr->length == 0)
return KRB5_OK;
@@ -302,7 +316,7 @@ krb5_fcc_read_addr(context, id, addr)
return kret;
}
-krb5_error_code
+krb5_error_code INTERFACE
krb5_fcc_read_int32(context, id, i)
krb5_context context;
krb5_ccache id;
@@ -324,7 +338,7 @@ krb5_fcc_read_int32(context, id, i)
}
}
-krb5_error_code
+krb5_error_code INTERFACE
krb5_fcc_read_ui_2(context, id, i)
krb5_context context;
krb5_ccache id;
@@ -346,7 +360,7 @@ krb5_fcc_read_ui_2(context, id, i)
}
}
-krb5_error_code
+krb5_error_code INTERFACE
krb5_fcc_read_octet(context, id, i)
krb5_context context;
krb5_ccache id;
@@ -356,7 +370,7 @@ krb5_fcc_read_octet(context, id, i)
}
-krb5_error_code
+krb5_error_code INTERFACE
krb5_fcc_read_times(context, id, t)
krb5_context context;
krb5_ccache id;
@@ -391,14 +405,14 @@ errout:
return retval;
}
-krb5_error_code
+krb5_error_code INTERFACE
krb5_fcc_read_authdata(context, id, a)
krb5_context context;
krb5_ccache id;
krb5_authdata ***a;
{
krb5_error_code kret;
- krb5_int32 length;
+ krb5_int32 length, msize;
int i;
*a = 0;
@@ -413,7 +427,10 @@ krb5_fcc_read_authdata(context, id, a)
/* Make *a able to hold length pointers to krb5_authdata structs
* Add one extra for a null-terminated list
*/
- *a = (krb5_authdata **) calloc(length+1, sizeof(krb5_authdata *));
+ msize = length+1;
+ if ((msize & VALID_UINT_BITS) != msize) /* Overflow size_t??? */
+ return KRB5_CC_NOMEM;
+ *a = (krb5_authdata **) calloc((size_t) msize, sizeof(krb5_authdata *));
if (*a == NULL)
return KRB5_CC_NOMEM;
@@ -434,7 +451,7 @@ krb5_fcc_read_authdata(context, id, a)
return kret;
}
-krb5_error_code
+krb5_error_code INTERFACE
krb5_fcc_read_authdatum(context, id, a)
krb5_context context;
krb5_ccache id;
@@ -443,7 +460,6 @@ krb5_fcc_read_authdatum(context, id, a)
krb5_error_code kret;
krb5_int32 int32;
krb5_ui_2 ui2;
- int ret;
a->magic = KV5M_AUTHDATA;
a->contents = NULL;
@@ -453,7 +469,9 @@ krb5_fcc_read_authdatum(context, id, a)
a->ad_type = (krb5_authdatatype)ui2;
kret = krb5_fcc_read_int32(context, id, &int32);
CHECK(kret);
- a->length = int32;
+ if ((int32 & VALID_INT_BITS) != int32) /* Overflow int??? */
+ return KRB5_CC_NOMEM;
+ a->length = (int) int32;
if (a->length == 0 )
return KRB5_OK;
diff --git a/src/lib/krb5/ccache/file/fcc_reslv.c b/src/lib/krb5/ccache/file/fcc_reslv.c
index 2944f43..c352c0c 100644
--- a/src/lib/krb5/ccache/file/fcc_reslv.c
+++ b/src/lib/krb5/ccache/file/fcc_reslv.c
@@ -49,7 +49,7 @@ extern krb5_cc_ops krb5_fcc_ops;
* krb5_ccache. id is undefined.
* permission errors
*/
-krb5_error_code
+krb5_error_code INTERFACE
krb5_fcc_resolve (context, id, residual)
krb5_context context;
krb5_ccache *id;
diff --git a/src/lib/krb5/ccache/file/fcc_retrv.c b/src/lib/krb5/ccache/file/fcc_retrv.c
index b9d3242..32ee496 100644
--- a/src/lib/krb5/ccache/file/fcc_retrv.c
+++ b/src/lib/krb5/ccache/file/fcc_retrv.c
@@ -84,7 +84,7 @@ register const krb5_data *data1, *data2;
* permission errors
* KRB5_CC_NOMEM
*/
-krb5_error_code
+krb5_error_code INTERFACE
krb5_fcc_retrieve(context, id, whichfields, mcreds, creds)
krb5_context context;
krb5_ccache id;
diff --git a/src/lib/krb5/ccache/file/fcc_sflags.c b/src/lib/krb5/ccache/file/fcc_sflags.c
index ac4b5a9..d74f2b0 100644
--- a/src/lib/krb5/ccache/file/fcc_sflags.c
+++ b/src/lib/krb5/ccache/file/fcc_sflags.c
@@ -39,7 +39,7 @@
* Effects:
* Sets the operational flags of id to flags.
*/
-krb5_error_code
+krb5_error_code INTERFACE
krb5_fcc_set_flags(context, id, flags)
krb5_context context;
krb5_ccache id;
diff --git a/src/lib/krb5/ccache/file/fcc_skip.c b/src/lib/krb5/ccache/file/fcc_skip.c
index 15aa43b..f4db9b3 100644
--- a/src/lib/krb5/ccache/file/fcc_skip.c
+++ b/src/lib/krb5/ccache/file/fcc_skip.c
@@ -28,7 +28,7 @@
#include "fcc.h"
-krb5_error_code
+krb5_error_code INTERFACE
krb5_fcc_skip_principal(context, id)
krb5_context context;
krb5_ccache id;
diff --git a/src/lib/krb5/ccache/file/fcc_sseq.c b/src/lib/krb5/ccache/file/fcc_sseq.c
index 622cd57..c2d1645 100644
--- a/src/lib/krb5/ccache/file/fcc_sseq.c
+++ b/src/lib/krb5/ccache/file/fcc_sseq.c
@@ -40,23 +40,23 @@
* KRB5_CC_NOMEM
* system errors
*/
-krb5_error_code
+krb5_error_code INTERFACE
krb5_fcc_start_seq_get(context, id, cursor)
krb5_context context;
krb5_ccache id;
krb5_cc_cursor *cursor;
{
krb5_fcc_cursor *fcursor;
- int ret = KRB5_OK;
+ krb5_error_code kret = KRB5_OK;
fcursor = (krb5_fcc_cursor *) malloc(sizeof(krb5_fcc_cursor));
if (fcursor == NULL)
return KRB5_CC_NOMEM;
if (OPENCLOSE(id)) {
- ret = krb5_fcc_open_file(context, id, FCC_OPEN_RDONLY);
- if (ret) {
+ kret = krb5_fcc_open_file(context, id, FCC_OPEN_RDONLY);
+ if (kret) {
krb5_xfree(fcursor);
- return ret;
+ return kret;
}
}
else
@@ -69,6 +69,6 @@ krb5_fcc_start_seq_get(context, id, cursor)
fcursor->pos = lseek(((krb5_fcc_data *) id->data)->fd, 0, SEEK_CUR);
*cursor = (krb5_cc_cursor) fcursor;
- MAYBE_CLOSE(context, id, ret);
- return ret;
+ MAYBE_CLOSE(context, id, kret);
+ return kret;
}
diff --git a/src/lib/krb5/ccache/file/fcc_store.c b/src/lib/krb5/ccache/file/fcc_store.c
index 352cae7..12eef45 100644
--- a/src/lib/krb5/ccache/file/fcc_store.c
+++ b/src/lib/krb5/ccache/file/fcc_store.c
@@ -41,7 +41,7 @@
* system errors
* storage failure errors
*/
-krb5_error_code
+krb5_error_code INTERFACE
krb5_fcc_store(context, id, creds)
krb5_context context;
krb5_ccache id;
diff --git a/src/lib/krb5/ccache/file/fcc_write.c b/src/lib/krb5/ccache/file/fcc_write.c
index f5c8f8c..e433bff 100644
--- a/src/lib/krb5/ccache/file/fcc_write.c
+++ b/src/lib/krb5/ccache/file/fcc_write.c
@@ -41,7 +41,7 @@
* Errors:
* system errors
*/
-krb5_error_code
+krb5_error_code INTERFACE
krb5_fcc_write(context, id, buf, len)
krb5_context context;
krb5_ccache id;
@@ -72,7 +72,7 @@ krb5_fcc_write(context, id, buf, len)
* system errors
*/
-krb5_error_code
+krb5_error_code INTERFACE
krb5_fcc_store_principal(context, id, princ)
krb5_context context;
krb5_ccache id;
@@ -111,7 +111,7 @@ krb5_fcc_store_principal(context, id, princ)
return KRB5_OK;
}
-krb5_error_code
+krb5_error_code INTERFACE
krb5_fcc_store_addrs(context, id, addrs)
krb5_context context;
krb5_ccache id;
@@ -138,7 +138,7 @@ krb5_fcc_store_addrs(context, id, addrs)
return KRB5_OK;
}
-krb5_error_code
+krb5_error_code INTERFACE
krb5_fcc_store_keyblock(context, id, keyblock)
krb5_context context;
krb5_ccache id;
@@ -159,7 +159,7 @@ krb5_fcc_store_keyblock(context, id, keyblock)
return krb5_fcc_write(context, id, (char *) keyblock->contents, keyblock->length);
}
-krb5_error_code
+krb5_error_code INTERFACE
krb5_fcc_store_addr(context, id, addr)
krb5_context context;
krb5_ccache id;
@@ -175,7 +175,7 @@ krb5_fcc_store_addr(context, id, addr)
}
-krb5_error_code
+krb5_error_code INTERFACE
krb5_fcc_store_data(context, id, data)
krb5_context context;
krb5_ccache id;
@@ -188,7 +188,7 @@ krb5_fcc_store_data(context, id, data)
return krb5_fcc_write(context, id, data->data, data->length);
}
-krb5_error_code
+krb5_error_code INTERFACE
krb5_fcc_store_int32(context, id, i)
krb5_context context;
krb5_ccache id;
@@ -201,19 +201,19 @@ krb5_fcc_store_int32(context, id, i)
(data->version == KRB5_FCC_FVNO_2))
return krb5_fcc_write(context, id, (char *) &i, sizeof(krb5_int32));
else {
- buf[3] = i & 0xFF;
+ buf[3] = (unsigned char) (i & 0xFF);
i >>= 8;
- buf[2] = i & 0xFF;
+ buf[2] = (unsigned char) (i & 0xFF);
i >>= 8;
- buf[1] = i & 0xFF;
+ buf[1] = (unsigned char) (i & 0xFF);
i >>= 8;
- buf[0] = i & 0xFF;
+ buf[0] = (unsigned char) (i & 0xFF);
return krb5_fcc_write(context, id, buf, 4);
}
}
-krb5_error_code
+krb5_error_code INTERFACE
krb5_fcc_store_ui_2(context, id, i)
krb5_context context;
krb5_ccache id;
@@ -225,18 +225,18 @@ krb5_fcc_store_ui_2(context, id, i)
if ((data->version == KRB5_FCC_FVNO_1) ||
(data->version == KRB5_FCC_FVNO_2)) {
- ibuf = i;
+ ibuf = (krb5_ui_2) i;
return krb5_fcc_write(context, id, (char *) &ibuf, sizeof(krb5_ui_2));
} else {
- buf[1] = i & 0xFF;
+ buf[1] = (unsigned char) (i & 0xFF);
i >>= 8;
- buf[0] = i & 0xFF;
+ buf[0] = (unsigned char) (i & 0xFF);
return krb5_fcc_write(context, id, buf, 2);
}
}
-krb5_error_code
+krb5_error_code INTERFACE
krb5_fcc_store_octet(context, id, i)
krb5_context context;
krb5_ccache id;
@@ -244,11 +244,11 @@ krb5_fcc_store_octet(context, id, i)
{
krb5_octet ibuf;
- ibuf = i;
+ ibuf = (krb5_octet) i;
return krb5_fcc_write(context, id, (char *) &ibuf, 1);
}
-krb5_error_code
+krb5_error_code INTERFACE
krb5_fcc_store_times(context, id, t)
krb5_context context;
krb5_ccache id;
@@ -273,7 +273,7 @@ krb5_fcc_store_times(context, id, t)
}
}
-krb5_error_code
+krb5_error_code INTERFACE
krb5_fcc_store_authdata(context, id, a)
krb5_context context;
krb5_ccache id;
@@ -297,7 +297,7 @@ krb5_fcc_store_authdata(context, id, a)
return KRB5_OK;
}
-krb5_error_code
+krb5_error_code INTERFACE
krb5_fcc_store_authdatum (context, id, a)
krb5_context context;
krb5_ccache id;