]> git.saurik.com Git - apple/libinfo.git/blobdiff - rpc.subproj/auth_unix.c
Libinfo-517.30.1.tar.gz
[apple/libinfo.git] / rpc.subproj / auth_unix.c
index f2902c1f7757a6a801263a4b817ccf0cfd576e33..85318d55f6f4d3e812947c2195ccbf1e9155ceb5 100644 (file)
@@ -106,7 +106,11 @@ static struct auth_ops auth_unix_ops = {
 struct audata {
        struct opaque_auth      au_origcred;    /* original credentials */
        struct opaque_auth      au_shcred;      /* short hand cred */
+#ifdef __LP64__
+       uint32_t                        au_shfaults;    /* short hand cache faults */
+#else
        u_long                  au_shfaults;    /* short hand cache faults */
+#endif
        char                    au_marshed[MAX_AUTH_BYTES];
        u_int                   au_mpos;        /* xdr pos at end of marshed */
 };
@@ -147,6 +151,7 @@ authunix_create(machname, uid, gid, len, aup_gids)
        au = (struct audata *)mem_alloc(sizeof(*au));
 #ifndef KERNEL
        if (au == NULL) {
+               mem_free(auth, sizeof(*auth));
                (void)fprintf(stderr, "authunix_create: out of memory\n");
                return (NULL);
        }
@@ -179,6 +184,8 @@ authunix_create(machname, uid, gid, len, aup_gids)
        au->au_origcred.oa_base = mem_alloc((u_int) len);
 #else
        if ((au->au_origcred.oa_base = mem_alloc((u_int) len)) == NULL) {
+               mem_free(auth, sizeof(*auth));
+               mem_free(au, sizeof(*au));
                (void)fprintf(stderr, "authunix_create: out of memory\n");
                return (NULL);
        }
@@ -220,7 +227,7 @@ authunix_create_default()
        char machname[MAX_MACHINE_NAME + 1];
        register int uid;
        register int gid;
-       int gids[NGROUPS];
+       gid_t gids[NGROUPS];
 
        if (gethostname(machname, MAX_MACHINE_NAME) == -1)
                abort();
@@ -232,7 +239,7 @@ authunix_create_default()
         if (len > maxgrplist) {
             len = maxgrplist;
         }
-       return (authunix_create(machname, uid, gid, len, gids));
+       return (authunix_create(machname, uid, gid, len, (int *)gids));
 }
 
 /*