} else {
for (i = 0; i < HASHSIZE; i++) {
upos = nflag ? ntohl(prh.nameHash[i]) : ntohl(prh.idHash[i]);
- while (upos)
- upos = display_entry(upos);
+ while (upos) {
+ long newpos;
+ newpos = display_entry(upos);
+ if (newpos == upos) {
+ fprintf(stderr, "pt_util: hash error in %s chain %d\n",
+ nflag ? "name":"id", i);
+ exit(1);
+ } else
+ upos = newpos;
+ }
}
if (flags & DO_GRP)
display_groups();
* directory or online at http://www.openafs.org/dl/license10.html
*/
+#include <assert.h>
#include <afsconfig.h>
#include <afs/param.h>
return 0;
if (aid == tentry.id)
return entry;
+ assert(entry != tentry.nextID);
entry = tentry.nextID;
while (entry != 0) {
memset(&tentry, 0, sizeof(tentry));
return 0;
if (aid == tentry.id)
return entry;
+ assert(entry != tentry.nextID);
entry = tentry.nextID;
}
return 0;
return 0;
if ((strncmp(aname, tentryp->name, PR_MAXNAMELEN)) == 0)
return entry;
+ assert(entry != tentryp->nextName);
entry = tentryp->nextName;
while (entry != 0) {
memset(tentryp, 0, sizeof(struct prentry));
return 0;
if ((strncmp(aname, tentryp->name, PR_MAXNAMELEN)) == 0)
return entry;
+ assert(entry != tentryp->nextName);
entry = tentryp->nextName;
}
return 0;
if (code)
return PRDBFAIL;
while (aid != tentry.id) {
+ assert(trail != current);
trail = current;
current = tentry.nextID;
if (current == 0)
if (code)
return PRDBFAIL;
while (strcmp(aname, tentry.name)) {
+ assert(trail != current);
trail = current;
current = tentry.nextName;
if (current == 0)