#ifdef AFS_AIXNFS11
#define AUTH_DES 1
#endif
-#if (defined(AFS_AIX_ENV) && !defined(AUTH_DES)) || (!defined(AFS_SUN_ENV)) && !defined(AFS_SGI_ENV) && !defined(AFS_OSF_ENV) && !defined(AFS_SUN5_ENV)
-#ifndef AFS_AIX32_ENV
-#if !defined(AFS_HPUX110_ENV) && !defined(AFS_LINUX20_ENV) && !defined(AFS_DARWIN_ENV) && !defined(AFS_XBSD_ENV)
-/*
- * XDR chars; from user mode xdr package.
- */
-bool_t
-xdr_char(register XDR * xdrs, char *sp)
-{
- afs_int32 l;
-
- switch (xdrs->x_op) {
-
- case XDR_ENCODE:
- l = (afs_int32) * sp;
- return (XDR_PUTINT32(xdrs, &l));
-
- case XDR_DECODE:
- if (!XDR_GETINT32(xdrs, &l)) {
- return (FALSE);
- }
- *sp = (char)l;
- return (TRUE);
-
- case XDR_FREE:
- return (TRUE);
- }
- return (FALSE);
-}
-#endif /* AFS_HPUX110_ENV && AFS_LINUX20_ENV */
-#endif
-#endif /* defined(AFS_AIX_ENV) && !defined(AUTH_DES) */
-
-
/*
* Wrapper for xdr_string that can be called directly from
* routines like clnt_call; from user-mode xdr package.
$(UOBJ)/afs_pioctl.o \
$(UOBJ)/osi_vfsops.o \
$(UOBJ)/afs_usrops.o \
+ $(UOBJ)/xdr.o \
$(UOBJ)/xdr_afsuuid.o \
$(UOBJ)/afs_uuid.o \
$(UOBJ)/assert.o \
$(WEBOBJ)/afs_pioctl.o \
$(WEBOBJ)/osi_vfsops.o \
$(WEBOBJ)/afs_usrops.o \
+ $(WEBOBJ)/xdr.o \
$(WEBOBJ)/xdr_afsuuid.o \
$(WEBOBJ)/afs_uuid.o \
$(WEBOBJ)/assert.o \
$(JUAFS)/afs_pioctl.o \
$(JUAFS)/osi_vfsops.o \
$(JUAFS)/afs_usrops.o \
+ $(JUAFS)/xdr.o \
$(JUAFS)/xdr_afsuuid.o \
$(JUAFS)/afs_uuid.o \
$(JUAFS)/assert.o \
$(CRULE1)
$(UOBJ)/xdr_afsuuid.o: $(TOP_SRCDIR)/rx/xdr_afsuuid.c
$(CRULE1)
+$(UOBJ)/xdr.o: $(TOP_SRCDIR)/rx/xdr.c
+ $(CRULE1)
$(UOBJ)/osi_vnodeops.o: $(TOP_SRC_AFS)/UKERNEL/osi_vnodeops.c
$(CRULE1)
$(UOBJ)/osi_vm.o: $(TOP_SRC_AFS)/UKERNEL/osi_vm.c
$(CRULE1)
$(WEBOBJ)/xdr_afsuuid.o: $(TOP_SRCDIR)/rx/xdr_afsuuid.c
$(CRULE2)
+$(WEBOBJ)/xdr.o: $(TOP_SRCDIR)/rx/xdr.c
+ $(CRULE2)
$(WEBOBJ)/osi_vnodeops.o: $(TOP_SRC_AFS)/UKERNEL/osi_vnodeops.c
$(CRULE2)
$(WEBOBJ)/osi_vm.o: $(TOP_SRC_AFS)/UKERNEL/osi_vm.c
$(CRULE1)
$(JUAFS)/xdr_afsuuid.o: $(TOP_SRCDIR)/rx/xdr_afsuuid.c
$(CRULE1)
+$(JUAFS)/xdr.o: $(TOP_SRCDIR)/rx/xdr.c
+ $(CRULE1)
$(JUAFS)/osi_vnodeops.o: $(TOP_SRC_AFS)/UKERNEL/osi_vnodeops.c
$(CRULE1)
$(JUAFS)/osi_vm.o: $(TOP_SRC_AFS)/UKERNEL/osi_vm.c
idlist lids;
lnames.namelist_len = 2;
- lnames.namelist_val = (prname *) malloc(2 * PR_MAXNAMELEN);
+ lnames.namelist_val = (prname *) xdr_alloc(2 * PR_MAXNAMELEN);
strncpy(lnames.namelist_val[0], user, PR_MAXNAMELEN);
strncpy(lnames.namelist_val[1], group, PR_MAXNAMELEN);
lids.idlist_val = 0;
lids.idlist_val[1]);
done:
if (lnames.namelist_val)
- free(lnames.namelist_val);
+ xdr_free(lnames.namelist_val, 2 * PR_MAXNAMELEN);
if (lids.idlist_val)
- free(lids.idlist_val);
+ xdr_free(lids.idlist_val, lids.idlist_len * sizeof(lids.idlist_val[0]));
return code;
}
idlist lids;
lnames.namelist_len = 2;
- lnames.namelist_val = (prname *) malloc(2 * PR_MAXNAMELEN);
+ lnames.namelist_val = (prname *) xdr_alloc(2 * PR_MAXNAMELEN);
strncpy(lnames.namelist_val[0], user, PR_MAXNAMELEN);
strncpy(lnames.namelist_val[1], group, PR_MAXNAMELEN);
lids.idlist_val = 0;
lids.idlist_val[1]);
done:
if (lnames.namelist_val)
- free(lnames.namelist_val);
+ xdr_free(lnames.namelist_val, 2 * PR_MAXNAMELEN);
if (lids.idlist_val)
- free(lids.idlist_val);
+ xdr_free(lids.idlist_val, lids.idlist_len * sizeof(lids.idlist_val[0]));
return code;
}
lids.idlist_len = 0;
lids.idlist_val = 0;
lnames.namelist_len = 1;
- lnames.namelist_val = (prname *) malloc(PR_MAXNAMELEN);
+ lnames.namelist_val = (prname *) xdr_alloc(PR_MAXNAMELEN);
stolower(name);
strncpy(lnames.namelist_val[0], name, PR_MAXNAMELEN);
code = ubik_PR_NameToID(pruclient, 0, &lnames, &lids);
if (lids.idlist_val) {
*id = *lids.idlist_val;
- free(lids.idlist_val);
+ xdr_free(lids.idlist_val, lids.idlist_len * sizeof(lids.idlist_val[0]));
}
if (lnames.namelist_val)
- free(lnames.namelist_val);
+ xdr_free(lnames.namelist_val, PR_MAXNAMELEN);
return code;
}
register afs_int32 code;
lids.idlist_len = 1;
- lids.idlist_val = (afs_int32 *) malloc(sizeof(afs_int32));
+ lids.idlist_val = (afs_int32 *) xdr_alloc(sizeof(afs_int32));
*lids.idlist_val = id;
lnames.namelist_len = 0;
lnames.namelist_val = 0;
code = ubik_PR_IDToName(pruclient, 0, &lids, &lnames);
if (lnames.namelist_val) {
strncpy(name, lnames.namelist_val[0], PR_MAXNAMELEN);
- free(lnames.namelist_val);
+ xdr_free(lnames.namelist_val, PR_MAXNAMELEN);
}
if (lids.idlist_val)
- free(lids.idlist_val);
+ xdr_free(lids.idlist_val, lids.idlist_len * sizeof(lids.idlist_val[0]));
return code;
}
if (code)
return code;
if (alist.prlist_val)
- free(alist.prlist_val);
+ xdr_free(alist.prlist_val, alist.prlist_len * sizeof(alist.prlist_val[0]));
return PRSUCCESS;
}
if (code)
return code;
if (alist.prlist_val)
- free(alist.prlist_val);
+ xdr_free(alist.prlist_val, alist.prlist_len * sizeof(alist.prlist_val[0]));
return PRSUCCESS;
}
stolower(uname);
stolower(gname);
lnames.namelist_len = 2;
- lnames.namelist_val = (prname *) malloc(2 * PR_MAXNAMELEN);
+ lnames.namelist_val = (prname *) xdr_alloc(2 * PR_MAXNAMELEN);
strncpy(lnames.namelist_val[0], uname, PR_MAXNAMELEN);
strncpy(lnames.namelist_val[1], gname, PR_MAXNAMELEN);
lids.idlist_val = 0;
code = pr_NameToId(&lnames, &lids);
if (code) {
if (lnames.namelist_val)
- free(lnames.namelist_val);
+ xdr_free(lnames.namelist_val, 2 * PR_MAXNAMELEN);
if (lids.idlist_val)
- free(lids.idlist_val);
+ xdr_free(lids.idlist_val, lids.idlist_len * sizeof(lids.idlist_val[0]));
return code;
}
code =
ubik_PR_IsAMemberOf(pruclient, 0, lids.idlist_val[0],
lids.idlist_val[1], flag);
if (lnames.namelist_val)
- free(lnames.namelist_val);
+ xdr_free(lnames.namelist_val, 2 * PR_MAXNAMELEN);
if (lids.idlist_val)
- free(lids.idlist_val);
+ xdr_free(lids.idlist_val, lids.idlist_len * sizeof(lids.idlist_val[0]));
return code;
}