Protect ubik cache accesses
[openafs.git] / src / ptserver / ubik.c
index a68a825..2124e6c 100644 (file)
@@ -3,16 +3,20 @@
 #include <afsconfig.h>
 #include <afs/param.h>
 
-RCSID
-    ("$Header$");
 
 #include <sys/types.h>
+#ifdef AFS_NT40_ENV
+#include <io.h>
+#else
 #include <netinet/in.h>
+#endif
 #include <string.h>
+#include <stdarg.h>
 
 #include <lock.h>
 #define UBIK_INTERNALS
 #include <afs/stds.h>
+#include <afs/cellconfig.h>
 #include <ubik.h>
 #include <rx/xdr.h>
 #include "ptint.h"
@@ -23,7 +27,7 @@ struct ubik_dbase *dbase;
 
 int
 ubik_ServerInit(afs_int32 myHost, short myPort, afs_int32 serverList[],
-                char *pathName, struct ubik_dbase **dbase)
+                const char *pathName, struct ubik_dbase **dbase)
 {
     return (0);
 }
@@ -80,7 +84,7 @@ ubik_Truncate(register struct ubik_trans *transPtr, afs_int32 length)
     return (0);
 }
 
-long
+int
 ubik_SetLock(struct ubik_trans *atrans, afs_int32 apos, afs_int32 alen,
              int atype)
 {
@@ -95,22 +99,27 @@ ubik_WaitVersion(register struct ubik_dbase *adatabase,
 }
 
 int
-ubik_CacheUpdate(register struct ubik_trans *atrans)
+ubik_CheckCache(struct ubik_trans *atrans, ubik_updatecache_func cbf, void *rock)
 {
     return (0);
 }
 
-int
-panic(char *a, char *b, char *c, char *d)
+void
+panic(char *format, ...)
 {
-    printf(a, b, c, d);
+    va_list ap;
+
+    va_start(ap, format);
+    vprintf(format, ap);
+    va_end(ap);
+    
     abort();
     printf("BACK FROM ABORT\n");       /* shouldn't come back from floating pt exception */
     exit(1);                   /* never know, though */
 }
 
 int
-ubik_GetVersion(int dummy, struct ubik_version *ver)
+ubik_GetVersion(struct ubik_trans *dummy, struct ubik_version *ver)
 {
     memset(ver, 0, sizeof(struct ubik_version));
     return (0);
@@ -118,7 +127,7 @@ ubik_GetVersion(int dummy, struct ubik_version *ver)
 
 
 int
-ubik_Seek(struct ubik_trans *tt, long afd, long pos)
+ubik_Seek(struct ubik_trans *tt, afs_int32 afd, afs_int32 pos)
 {
     if (lseek(dbase_fd, pos + HDRSIZE, 0) < 0) {
        perror("ubik_Seek");
@@ -128,7 +137,7 @@ ubik_Seek(struct ubik_trans *tt, long afd, long pos)
 }
 
 int
-ubik_Write(struct ubik_trans *tt, char *buf, long len)
+ubik_Write(struct ubik_trans *tt, void *buf, afs_int32 len)
 {
     int status;
 
@@ -141,7 +150,7 @@ ubik_Write(struct ubik_trans *tt, char *buf, long len)
 }
 
 int
-ubik_Read(struct ubik_trans *tt, char *buf, long len)
+ubik_Read(struct ubik_trans *tt, void *buf, afs_int32 len)
 {
     int status;
 
@@ -151,7 +160,7 @@ ubik_Read(struct ubik_trans *tt, char *buf, long len)
        return (1);
     }
     if (status < len)
-       memset(&buf[status], 0, len - status);
+       memset((char *)buf + status, 0, len - status);
     return (0);
 }