Ported the ccache directory to the PC. This is temporary--eventually we'll
authorKeith Vetter <keithv@fusion.com>
Wed, 8 Mar 1995 01:04:08 +0000 (01:04 +0000)
committerKeith Vetter <keithv@fusion.com>
Wed, 8 Mar 1995 01:04:08 +0000 (01:04 +0000)
use the in-memory solution from k4.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@5081 dc483132-0cff-0310-8789-dd5450dbe970

27 files changed:
src/lib/krb5/ccache/ChangeLog
src/lib/krb5/ccache/Makefile.in
src/lib/krb5/ccache/ccbase.c
src/lib/krb5/ccache/ccdefault.c
src/lib/krb5/ccache/file/ChangeLog
src/lib/krb5/ccache/file/Makefile.in
src/lib/krb5/ccache/file/fcc-proto.h
src/lib/krb5/ccache/file/fcc.h
src/lib/krb5/ccache/file/fcc_close.c
src/lib/krb5/ccache/file/fcc_defnam.c
src/lib/krb5/ccache/file/fcc_destry.c
src/lib/krb5/ccache/file/fcc_errs.c
src/lib/krb5/ccache/file/fcc_eseq.c
src/lib/krb5/ccache/file/fcc_gennew.c
src/lib/krb5/ccache/file/fcc_getnam.c
src/lib/krb5/ccache/file/fcc_gprin.c
src/lib/krb5/ccache/file/fcc_init.c
src/lib/krb5/ccache/file/fcc_maybe.c
src/lib/krb5/ccache/file/fcc_nseq.c
src/lib/krb5/ccache/file/fcc_read.c
src/lib/krb5/ccache/file/fcc_reslv.c
src/lib/krb5/ccache/file/fcc_retrv.c
src/lib/krb5/ccache/file/fcc_sflags.c
src/lib/krb5/ccache/file/fcc_skip.c
src/lib/krb5/ccache/file/fcc_sseq.c
src/lib/krb5/ccache/file/fcc_store.c
src/lib/krb5/ccache/file/fcc_write.c

index 69642720ddbd0aa0989a069fad6b61b82c498980..edc3497c4d85cf7315b79d245b245e7aec0674ba 100644 (file)
@@ -1,3 +1,8 @@
+Tue Mar 7 15:55:12 1995 Keith Vetter (keithv@fusion.com)
+
+       * ccbase.c, ccdefault.c: added window INTERFACE keyword.
+        * Makefile.in: made to work on the PC.
+
 Tue Feb 28 00:35:33 1995  John Gilmore  (gnu at toad.com)
 
        * ccbase.c, ccdefault.c:  Avoid <krb5/...> includes.
index dcf8bb294445b19980756a50eb670725e7f29c54..8567261929a9defc12ac9b3fd8d7444ebd66fe46 100644 (file)
@@ -1,12 +1,35 @@
 CFLAGS = $(CCOPTS) $(DEFS)
 LDFLAGS = -g
 
-all:: $(OBJS)
+##DOSBUILDTOP = ..\..\..
+##DOSLIBNAME=..\krb5.lib
+##DOS!include $(BUILDTOP)\config\windows.in
 
-OBJS=  ccbase.o \
-       ccdefault.o \
-       ccdefops.o
+OBJS=  ccbase.$(OBJEXT) \
+       ccdefault.$(OBJEXT) \
+       ccdefops.$(OBJEXT)
 
 SRCS=  $(srcdir)/ccbase.c \
        $(srcdir)/ccdefault.c \
        $(srcdir)/ccdefops.c
+
+all:: $(OBJS) all-$(WHAT)
+
+all-unix::
+
+all-windows::
+       cd FILE
+       @echo Making in CCACHE\FILE
+       -$(MAKE) -$(MFLAGS) LIBCMD=$(LIBCMD)
+       cd ..
+
+clean:: clean-$(WHAT)
+
+clean-unix::
+
+clean-windows::
+       cd FILE
+       @echo Making clean in CCACHE\FILE
+       -$(MAKE) -$(MFLAGS) clean
+       cd ..
+        
index 6bdd049ef4c370344aabead1d18fe5c61842b74d..c86212c321bbb22238aea085692c6de11223261d 100644 (file)
@@ -39,7 +39,7 @@ static struct krb5_cc_typelist *cc_typehead = 0;
  * If override is set, replace any existing ccache with that type tag
  */
 
-krb5_error_code
+krb5_error_code INTERFACE
 krb5_cc_register(context, ops, override)
    krb5_context context;
    krb5_cc_ops *ops;
@@ -73,7 +73,8 @@ krb5_cc_register(context, ops, override)
  * particular cache type.
  */
 
-krb5_error_code krb5_cc_resolve (context, name, cache)
+krb5_error_code INTERFACE
+krb5_cc_resolve (context, name, cache)
    krb5_context context;
    char *name;
    krb5_ccache *cache;
index 7b7b0fb8d784c4692f24af301596e605292da3e1..c5b8f4c73f96a2235ebedf5e496947570eb9b304 100644 (file)
@@ -26,7 +26,8 @@
 
 #include "k5-int.h"
 
-krb5_error_code krb5_cc_default(context, ccache)
+krb5_error_code INTERFACE
+krb5_cc_default(context, ccache)
    krb5_context context;
    krb5_ccache *ccache;
 {
index 1d39f944df6e1c639261bd3a17c6fa4bf68fae23..e360610c9b5fb6a453e07d40ba9026c5668aab20 100644 (file)
@@ -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.
index 1650eb8ad2e05e5f16424377ebd122fe50d0666b..a31077816792ca1fcddae380057bd38a2586e523 100644 (file)
@@ -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)
 
index e7bee704e2aafc3eeaed355c015de3f5cf6b8664..26c605968deb4a2950d03373281fab78d3cec61b 100644 (file)
 #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__ */
index 83686c56edabb7c4277732287b3601980a7c1b6a..6b7c1b8b7343611a5d14e5259eb6b3d683c34907 100644 (file)
@@ -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>
index d59516e4d617ad35f2a93cbcee7948469d384d65..4c549aa3f4bf7d2e816f81034cd754450d3dba08 100644 (file)
@@ -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;
index 5926aca9fac7eb99606852b7e59ecfa8f89bb899..1982b37bf5f407c361db5931459980e2c241b6dd 100644 (file)
@@ -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;
 {
index 9fb13f63eb87b1a393fa2c306aae38e2a62963ef..ad8dbcc3cc866d2423cc325ecd00e83983e95e56 100644 (file)
@@ -24,7 +24,6 @@
  * This file contains the source code for krb5_fcc_destroy.
  */
 
-
 #include <errno.h>
 #include "fcc.h"
 
  * 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;
 }
index 8a4834ab18b33fb7369f974247273b9f4b515276..43d8525dc0777e211792404636a742d02ed65991 100644 (file)
 
 #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;
index d2b5f1f8d3a09cde0c0f90d4c9d9ca2d9f1dc897..d888aa99551c0e2761f52a45bb7fed41afb303fc 100644 (file)
@@ -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;
index 099e4002a1a44bbe5c28827678890889abfbde90..507893350af11a34134f2dac8695a04517b4a4e8 100644 (file)
  * 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;
index f3357f1012578d61373234fef6126fdaa9c3a61d..8422ff6d2b8808ec31160350e0fdae16c37bcabd 100644 (file)
@@ -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;
index a97abd62e9cbd36c843465ed87eb27a9f3f36962..fbd35ff85f3e37aa0e97edab8664be03efa27dee 100644 (file)
@@ -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;
index fffc09a88cb01bbaa2488bf1d80a4ceb239bab39..c78d416af04248e8e79ef309bcfce5d55c35432f 100644 (file)
  * 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;
 }
 
 
index 1c4c729042bbdad2abb58527de99e23fb360e870..274c651c720d19e791e54ca638271faddcf0c94a 100644 (file)
@@ -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;
index 1a85acd0a54e3ec934118ffe8c56df3e497805b4..96650ac45ae518252f9e6a5fb94617a1bf2f9847 100644 (file)
@@ -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);
index 0ff983a30cfd0bc45ac90c637c8fff58dd8ae017..bf4c871f04236bde14580e3899e6b9147cf15771 100644 (file)
@@ -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;
index 2944f43bb76448e41b1622e089f16afbc36769e3..c352c0c0bb6d4299776452b8a94d06cec69534ec 100644 (file)
@@ -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;
index b9d324224a515b860bac252a1b9176cb841a50a4..32ee4960b3cfa804b81a6132cfbdba3ddc1c6f96 100644 (file)
@@ -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;
index ac4b5a96f1ca73d8179abb57c31251b5c9cc8479..d74f2b0e84907eddc57862da6b8be37a6f002f00 100644 (file)
@@ -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;
index 15aa43bd227c0576ea9b47146baa77115a62a08e..f4db9b3f89b8f414caf54412f5e0db4699f9ea55 100644 (file)
@@ -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;
index 622cd5701d95f42dfc0412dec8bfcaf527c24553..c2d1645c110b007eade3efca9544d23f1a2b6e01 100644 (file)
  * 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;
 }
index 352cae763415565aaf5b77fcdbc673092e0d0a0f..12eef45bfaee8db7a935316841c39230aba2e4a8 100644 (file)
@@ -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;
index f5c8f8c30638511f1a92cc364da57d8ba93b0ba4..e433bff7a945cd68b533eacfa5e1e377d052c6ae 100644 (file)
@@ -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;