perror(as->parms[0].items->data);
return errno;
}
- sp = (struct sourcestack *)malloc(sizeof *sp);
+ sp = malloc(sizeof *sp);
if (!sp) {
return errno ? errno : ENOMEM;
} else {
fclose(source);
source = sp->s_file;
shead = sp->s_next;
- free((char *)sp);
+ free(sp);
return 1;
}
else
confdir = AFSDIR_CLIENT_ETC_DIRPATH;
}
+
+ if (as->parms[23].items) { /* -config */
+ changed = 1;
+ confdir = as->parms[23].items->data;
+ }
+
if (changed) {
CleanUp(as, arock);
code = pr_Initialize(sec, confdir, cell);
n = 0; /* count names */
for (i = as->parms[0].items; i; i = i->next)
n++;
- nl->namelist_val = (prname *) malloc(n * PR_MAXNAMELEN);
+ nl->namelist_val = malloc(n * PR_MAXNAMELEN);
nl->namelist_len = n;
n = 0;
for (i = as->parms[0].items; i; i = i->next)
n = 0;
for (i = as->parms[1].items; i; i = i->next)
n++;
- lids->idlist_val = (afs_int32 *) malloc(n * sizeof(afs_int32));
+ lids->idlist_val = malloc(n * sizeof(afs_int32));
lids->idlist_len = n;
n = 0;
for (i = as->parms[1].items; i; i = i->next) {
struct idlist ids, tids; /* local copy, if not ret. ids */
int goodCount = 0;
+ /* Initialise our outputs */
+ memset(lids, 0, sizeof(struct idlist));
+ if (lnames)
+ memset(lnames, 0, sizeof(struct namelist));
+
for (i = as->parms[0].items; i; i = i->next)
n++;
- lids->idlist_val = (afs_int32 *) malloc(n * sizeof(afs_int32));
+
+ /* Nothing to do, so bail */
+ if (n == 0)
+ return 0;
+
+ lids->idlist_val = malloc(n * sizeof(afs_int32));
lids->idlist_len = n;
- ids.idlist_val = (afs_int32 *) malloc(n * sizeof(afs_int32));
+ ids.idlist_val = malloc(n * sizeof(afs_int32));
ids.idlist_len = n;
- names.namelist_val = (prname *) malloc(n * PR_MAXNAMELEN);
+ names.namelist_val = malloc(n * PR_MAXNAMELEN);
names.namelist_len = n;
if (lnames) {
- lnames->namelist_val = (prname *) malloc(n * PR_MAXNAMELEN);
+ lnames->namelist_val = malloc(n * PR_MAXNAMELEN);
lnames->namelist_len = 0;
}
for (i = as->parms[0].items; i; i = i->next) {
- tnames.namelist_val = (prname *) malloc(PR_MAXNAMELEN);
+ tnames.namelist_val = malloc(PR_MAXNAMELEN);
strncpy(tnames.namelist_val[0], i->data, PR_MAXNAMELEN);
tnames.namelist_len = 1;
tids.idlist_len = 0;
afs_com_err(whoami, code, "so couldn't look up names");
else {
for (n = 0; n < tids.idlist_len; n++) {
- if ((tids.idlist_val[n] == ANONYMOUSID)) {
+ if (tids.idlist_val[n] == ANONYMOUSID) {
afs_com_err(whoami, PRNOENT, "so couldn't look up id for %s",
names.namelist_val[n]);
} else
code = pr_IdToName(&ids, &tnames);
if (code)
afs_com_err(whoami, code, "translating ids");
- else
+ else {
goodCount++;
- if (lnames) {
- for (x = 0; x < ids.idlist_len; x++)
- strcpy(lnames->namelist_val[nd + x], tnames.namelist_val[x]);
- lnames->namelist_len = nd + x;
+ if (lnames) {
+ for (x = 0; x < ids.idlist_len; x++)
+ strcpy(lnames->namelist_val[nd + x], tnames.namelist_val[x]);
+ lnames->namelist_len = nd + x;
+ }
}
}
/* treat things as working if any of the lookups worked */
return PRBADARG;
lids.idlist_len = 2;
- lids.idlist_val = (afs_int32 *) malloc(sizeof(afs_int32) * 2);
+ lids.idlist_val = malloc(sizeof(afs_int32) * 2);
lnames.namelist_len = 0;
lnames.namelist_val = 0;
"use user's authentication (default)");
cmd_AddParm(ts, "-encrypt", CMD_FLAG, CMD_OPTIONAL,
"encrypt commands");
+ cmd_AddParm(ts, "-config", CMD_SINGLE, CMD_OPTIONAL, "config location");
}
/*
finished = 1;
source = NULL;
- if ((code = cmd_Dispatch(argc, argv))) {
+ if (cmd_Dispatch(argc, argv)) {
CleanUp(NULL, NULL);
exit(1);
}
}
savec = parsev[0];
parsev[0] = argv[0];
- code = cmd_Dispatch(parsec, parsev);
+ cmd_Dispatch(parsec, parsev);
parsev[0] = savec;
cmd_FreeArgv(parsev);
}