summaryrefslogtreecommitdiffstats
path: root/src/lib/krb5/krb/walk_rtree.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/krb5/krb/walk_rtree.c')
-rw-r--r--src/lib/krb5/krb/walk_rtree.c221
1 files changed, 111 insertions, 110 deletions
diff --git a/src/lib/krb5/krb/walk_rtree.c b/src/lib/krb5/krb/walk_rtree.c
index a22f5864ac..d1be2270f5 100644
--- a/src/lib/krb5/krb/walk_rtree.c
+++ b/src/lib/krb5/krb/walk_rtree.c
@@ -1,3 +1,4 @@
+/* -*- mode: c; c-basic-offset: 4; indent-tabs-mode: nil -*- */
/*
* lib/krb5/krb/walk_rtree.c
*
@@ -107,19 +108,19 @@ krb5_walk_realm_tree(
char **capvals;
if (client->data == NULL || server->data == NULL)
- return KRB5_NO_TKT_IN_RLM;
+ return KRB5_NO_TKT_IN_RLM;
if (client->length == server->length &&
- memcmp(client->data, server->data, server->length) == 0) {
- return KRB5_NO_TKT_IN_RLM;
+ memcmp(client->data, server->data, server->length) == 0) {
+ return KRB5_NO_TKT_IN_RLM;
}
retval = rtree_capath_vals(context, client, server, &capvals);
if (retval)
- return retval;
+ return retval;
if (capvals != NULL) {
- retval = rtree_capath_tree(context, client, server, capvals, tree);
- return retval;
+ retval = rtree_capath_tree(context, client, server, capvals, tree);
+ return retval;
}
retval = rtree_hier_tree(context, client, server, tree, realm_sep);
@@ -148,24 +149,24 @@ krb5_walk_realm_tree(
*
* [capaths]
* ANL.GOV = {
- * NERSC.GOV = ES.NET
- * PNL.GOV = ES.NET
- * ES.NET = .
- * HAL.COM = K5.MOON
- * HAL.COM = K5.JUPITER
+ * NERSC.GOV = ES.NET
+ * PNL.GOV = ES.NET
+ * ES.NET = .
+ * HAL.COM = K5.MOON
+ * HAL.COM = K5.JUPITER
* }
* NERSC.GOV = {
- * ANL.GOV = ES.NET
+ * ANL.GOV = ES.NET
* }
* PNL.GOV = {
- * ANL.GOV = ES.NET
+ * ANL.GOV = ES.NET
* }
* ES.NET = {
- * ANL.GOV = .
+ * ANL.GOV = .
* }
* HAL.COM = {
- * ANL.GOV = K5.JUPITER
- * ANL.GOV = K5.MOON
+ * ANL.GOV = K5.JUPITER
+ * ANL.GOV = K5.MOON
* }
*
* In the above a "." is used to mean directly connected since the
@@ -202,20 +203,20 @@ rtree_capath_tree(
*rettree = NULL;
tree = pprinc = NULL;
for (nvals = 0; vals[nvals] != NULL; nvals++)
- ;
+ ;
if (vals[0] != NULL && *vals[0] == '.') {
- nlinks = 0;
+ nlinks = 0;
} else {
- nlinks = nvals;
+ nlinks = nvals;
}
nprincs = nlinks + 2;
tree = calloc(nprincs + 1, sizeof(krb5_principal));
if (tree == NULL) {
- retval = ENOMEM;
- goto error;
+ retval = ENOMEM;
+ goto error;
}
for (i = 0; i < nprincs + 1; i++)
- tree[i] = NULL;
+ tree[i] = NULL;
/* Invariant: PPRINC points one past end of list. */
pprinc = &tree[0];
/* Local TGS name */
@@ -223,11 +224,11 @@ rtree_capath_tree(
if (retval) goto error;
srcrealm = *client;
for (i = 0; i < nlinks; i++) {
- dstrealm.data = vals[i];
- dstrealm.length = strcspn(vals[i], "\t ");
- retval = krb5_tgtname(context, &dstrealm, &srcrealm, pprinc++);
- if (retval) goto error;
- srcrealm = dstrealm;
+ dstrealm.data = vals[i];
+ dstrealm.length = strcspn(vals[i], "\t ");
+ retval = krb5_tgtname(context, &dstrealm, &srcrealm, pprinc++);
+ if (retval) goto error;
+ srcrealm = dstrealm;
}
retval = krb5_tgtname(context, server, &srcrealm, pprinc++);
if (retval) goto error;
@@ -236,12 +237,12 @@ rtree_capath_tree(
error:
profile_free_list(vals);
if (retval) {
- while (pprinc != NULL && pprinc > &tree[0]) {
- /* krb5_free_principal() correctly handles null input */
- krb5_free_principal(context, *--pprinc);
- *pprinc = NULL;
- }
- free(tree);
+ while (pprinc != NULL && pprinc > &tree[0]) {
+ /* krb5_free_principal() correctly handles null input */
+ krb5_free_principal(context, *--pprinc);
+ *pprinc = NULL;
+ }
+ free(tree);
}
return retval;
}
@@ -267,15 +268,15 @@ rtree_capath_vals(
clientz = calloc(client->length + 1, 1);
if (clientz == NULL) {
- retval = ENOMEM;
- goto error;
+ retval = ENOMEM;
+ goto error;
}
memcpy(clientz, client->data, client->length);
serverz = calloc(server->length + 1, 1);
if (serverz == NULL) {
- retval = ENOMEM;
- goto error;
+ retval = ENOMEM;
+ goto error;
}
memcpy(serverz, server->data, server->length);
@@ -287,13 +288,13 @@ rtree_capath_vals(
switch (retval) {
case PROF_NO_SECTION:
case PROF_NO_RELATION:
- /*
- * Not found; don't return an error.
- */
- retval = 0;
- break;
+ /*
+ * Not found; don't return an error.
+ */
+ retval = 0;
+ break;
default:
- break;
+ break;
}
error:
free(clientz);
@@ -320,31 +321,31 @@ rtree_hier_tree(
*rettree = NULL;
retval = rtree_hier_realms(context, client, server,
- &realms, &nrealms, sep);
+ &realms, &nrealms, sep);
if (retval)
- return retval;
+ return retval;
nprincs = nrealms;
pprinc = tree = calloc(nprincs + 1, sizeof(krb5_principal));
if (tree == NULL) {
- retval = ENOMEM;
- goto error;
+ retval = ENOMEM;
+ goto error;
}
for (i = 0; i < nrealms; i++)
- tree[i] = NULL;
+ tree[i] = NULL;
srcrealm = client;
for (i = 0; i < nrealms; i++) {
- dstrealm = &realms[i];
- retval = krb5_tgtname(context, dstrealm, srcrealm, pprinc++);
- if (retval) goto error;
- srcrealm = dstrealm;
+ dstrealm = &realms[i];
+ retval = krb5_tgtname(context, dstrealm, srcrealm, pprinc++);
+ if (retval) goto error;
+ srcrealm = dstrealm;
}
*rettree = tree;
free_realmlist(context, realms, nrealms);
return 0;
error:
while (pprinc != NULL && pprinc > tree) {
- krb5_free_principal(context, *--pprinc);
- *pprinc = NULL;
+ krb5_free_principal(context, *--pprinc);
+ *pprinc = NULL;
}
free_realmlist(context, realms, nrealms);
free(tree);
@@ -389,27 +390,27 @@ rtree_hier_realms(
rp = r = calloc(nctween + nstween, sizeof(krb5_data));
if (r == NULL) {
- retval = ENOMEM;
- goto error;
+ retval = ENOMEM;
+ goto error;
}
/* Copy client realm "tweens" forward. */
for (twp = ctweens; twp < &ctweens[nctween]; twp++) {
- retval = krb5int_copy_data_contents(context, twp, rp);
- if (retval) goto error;
- rp++;
+ retval = krb5int_copy_data_contents(context, twp, rp);
+ if (retval) goto error;
+ rp++;
}
/* Copy server realm "tweens" backward. */
for (twp = &stweens[nstween]; twp-- > stweens;) {
- retval = krb5int_copy_data_contents(context, twp, rp);
- if (retval) goto error;
- rp++;
+ retval = krb5int_copy_data_contents(context, twp, rp);
+ if (retval) goto error;
+ rp++;
}
error:
free(ctweens);
free(stweens);
if (retval) {
- free_realmlist(context, r, rp - r);
- return retval;
+ free_realmlist(context, r, rp - r);
+ return retval;
}
*realms = r;
*nrealms = rp - r;
@@ -425,7 +426,7 @@ free_realmlist(
size_t i;
for (i = 0; i < nrealms; i++)
- krb5_free_data_contents(context, &realms[i]);
+ krb5_free_data_contents(context, &realms[i]);
free(realms);
}
@@ -457,22 +458,22 @@ rtree_hier_tweens(
*ntweens = n = 0;
for (lp = p = r; p < &r[rlen]; p++) {
- if (*p != sep && &p[1] != &r[rlen])
- continue;
- if (lp == rtail && !dotail)
- break;
- ntws = realloc(tws, (n + 1) * sizeof(krb5_data));
- if (ntws == NULL) {
- free(tws);
- return ENOMEM;
- }
- tws = ntws;
- tws[n].data = lp;
- tws[n].length = &r[rlen] - lp;
- n++;
- if (lp == rtail)
- break;
- lp = &p[1];
+ if (*p != sep && &p[1] != &r[rlen])
+ continue;
+ if (lp == rtail && !dotail)
+ break;
+ ntws = realloc(tws, (n + 1) * sizeof(krb5_data));
+ if (ntws == NULL) {
+ free(tws);
+ return ENOMEM;
+ }
+ tws = ntws;
+ tws[n].data = lp;
+ tws[n].length = &r[rlen] - lp;
+ n++;
+ if (lp == rtail)
+ break;
+ lp = &p[1];
}
*tweens = tws;
*ntweens = n;
@@ -493,7 +494,7 @@ adjtail(struct hstate *c, struct hstate *s, int sep)
cp = c->tail;
sp = s->tail;
if (cp == NULL || sp == NULL)
- return;
+ return;
/*
* Is it a full component? Yes, if it's the beginning of the
* string or there's a separator to the left.
@@ -507,18 +508,18 @@ adjtail(struct hstate *c, struct hstate *s, int sep)
* If they're both full components, we're done.
*/
if (cfull && sfull) {
- return;
+ return;
} else if (c->dot != NULL && s->dot != NULL) {
- cp = c->dot + 1;
- sp = s->dot + 1;
- /*
- * Out of bounds? Can only happen if there are trailing dots.
- */
- if (cp >= &c->str[c->len] || sp >= &s->str[s->len]) {
- cp = sp = NULL;
- }
+ cp = c->dot + 1;
+ sp = s->dot + 1;
+ /*
+ * Out of bounds? Can only happen if there are trailing dots.
+ */
+ if (cp >= &c->str[c->len] || sp >= &s->str[s->len]) {
+ cp = sp = NULL;
+ }
} else {
- cp = sp = NULL;
+ cp = sp = NULL;
}
c->tail = cp;
s->tail = sp;
@@ -538,7 +539,7 @@ comtail(struct hstate *c, struct hstate *s, int sep)
char *cp, *sp, *cdot, *sdot;
if (c->len == 0 || s->len == 0)
- return;
+ return;
cdot = sdot = NULL;
/*
@@ -553,26 +554,26 @@ comtail(struct hstate *c, struct hstate *s, int sep)
* style realm), keep pointers to the latest pair.
*/
while (cp > c->str && sp > s->str) {
- if (*--cp != *--sp) {
- /*
- * Didn't match, so most recent match is one byte to the
- * right (or not at all).
- */
- cp++;
- sp++;
- break;
- }
- /*
- * Keep track of matching dots.
- */
- if (*cp == sep) {
- cdot = cp;
- sdot = sp;
- }
+ if (*--cp != *--sp) {
+ /*
+ * Didn't match, so most recent match is one byte to the
+ * right (or not at all).
+ */
+ cp++;
+ sp++;
+ break;
+ }
+ /*
+ * Keep track of matching dots.
+ */
+ if (*cp == sep) {
+ cdot = cp;
+ sdot = sp;
+ }
}
/* No match found at all. */
if (cp == &c->str[c->len])
- return;
+ return;
c->tail = cp;
s->tail = sp;
c->dot = cdot;