Don't cast the return from calloc()
[openafs.git] / src / libadmin / adminutil / afs_utilAdmin.c
index fd2ecc7..7cfdd40 100644 (file)
 #include <rx/rx.h>
 #include <rx/rxstat.h>
 
+#ifdef AFS_NT40_ENV
+# include <afs/krb5_nt.h>
+#endif
+
 #include <afs/afs_Admin.h>
 #include <afs/pthread_glock.h>
 #include <afs/cellconfig.h>
 #include <afs/volser.h>
 #include <afs/afscbint.h>
 
-#ifdef AFS_NT40_ENV
-# define EncryptionKey Krb5EncryptionKey
-#  include <krb5/krb5.h>
-# undef EncryptionKey
-#endif
-
 #include "afs_AdminInternal.h"
 #include "afs_utilAdmin.h"
 
@@ -76,9 +74,15 @@ init_once(void)
     initialize_AU_error_table();
     initialize_AV_error_table();
     initialize_VOLS_error_table();
+#ifdef AFS_KRB5_ERROR_ENV
+    initialize_krb5();
+#endif
     error_init_done = 1;
 }
 
+/*
+ * (*errorTextP) will not be freed by the caller.
+ */
 int ADMINAPI
 util_AdminErrorCodeTranslate(afs_status_t errorCode, int langId,
                             const char **errorTextP, afs_status_p st)
@@ -102,17 +106,9 @@ util_AdminErrorCodeTranslate(afs_status_t errorCode, int langId,
     *errorTextP = afs_error_message(code);
 #ifdef AFS_KRB5_ERROR_ENV
     if (strncmp(*errorTextP, "unknown", strlen("unknown")) == 0) {
-        krb5_context context;
-        if (!krb5_init_context(&context))
-        {
-            char *msg;
-            msg = krb5_get_error_message(context, code);
-            if (msg) {
-                *errorTextP = strdup(msg);
-                krb5_free_error_message(context, msg);
-            }
-            krb5_free_context(context);
-        }
+        const char *msg = fetch_krb5_error_message(code);
+        if (msg)
+            *errorTextP = msg;
     }
 #endif
     rc = 1;
@@ -232,8 +228,7 @@ util_DatabaseServerGetBegin(const char *cellName, void **iterationIdP,
     afs_status_t tst = 0;
     afs_admin_iterator_p iter =
        (afs_admin_iterator_p) malloc(sizeof(afs_admin_iterator_t));
-    database_server_get_p serv =
-       (database_server_get_p) calloc(1, sizeof(database_server_get_t));
+    database_server_get_p serv = calloc(1, sizeof(database_server_get_t));
     char copyCell[MAXCELLCHARS];
 
     /*
@@ -1209,13 +1204,13 @@ UnmarshallRPCStats(afs_uint32 serverVersion, afs_uint32 ** ptrP,
     s->stats_v1.func_index = *(ptr++);
     hi = *(ptr++);
     lo = *(ptr++);
-    hset64(s->stats_v1.invocations, hi, lo);
+    s->stats_v1.invocations = ((afs_uint64) hi << 32) + lo;
     hi = *(ptr++);
     lo = *(ptr++);
-    hset64(s->stats_v1.bytes_sent, hi, lo);
+    s->stats_v1.bytes_sent = ((afs_uint64) hi << 32) + lo;
     hi = *(ptr++);
     lo = *(ptr++);
-    hset64(s->stats_v1.bytes_rcvd, hi, lo);
+    s->stats_v1.bytes_rcvd = ((afs_uint64) hi << 32) + lo;
     s->stats_v1.queue_time_sum.sec = *(ptr++);
     s->stats_v1.queue_time_sum.usec = *(ptr++);
     s->stats_v1.queue_time_sum_sqr.sec = *(ptr++);