Indent the patch from Andrew and make it compile again
This commit is contained in:
121
lib/hdb/keytab.c
121
lib/hdb/keytab.c
@@ -321,65 +321,76 @@ hdb_next_entry(krb5_context context,
|
|||||||
struct hdb_cursor *c = cursor->data;
|
struct hdb_cursor *c = cursor->data;
|
||||||
krb5_error_code ret;
|
krb5_error_code ret;
|
||||||
|
|
||||||
if (c->first) {
|
memset(entry, 0, sizeof(*entry));
|
||||||
c->first = FALSE;
|
|
||||||
ret = (c->db->hdb_firstkey)(context, c->db,
|
if (c->first) {
|
||||||
HDB_F_DECRYPT|
|
c->first = FALSE;
|
||||||
HDB_F_GET_CLIENT|HDB_F_GET_SERVER|HDB_F_GET_KRBTGT,
|
ret = (c->db->hdb_firstkey)(context, c->db,
|
||||||
&c->hdb_entry);
|
HDB_F_DECRYPT|
|
||||||
if (ret == HDB_ERR_NOENTRY)
|
HDB_F_GET_CLIENT|HDB_F_GET_SERVER|HDB_F_GET_KRBTGT,
|
||||||
return KRB5_KT_END;
|
&c->hdb_entry);
|
||||||
else if (ret)
|
if (ret == HDB_ERR_NOENTRY)
|
||||||
return ret;
|
return KRB5_KT_END;
|
||||||
|
else if (ret)
|
||||||
if (c->hdb_entry.entry.keys.len == 0)
|
return ret;
|
||||||
hdb_free_entry(context, &c->hdb_entry);
|
|
||||||
else
|
|
||||||
c->next = FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
while (c->next) {
|
if (c->hdb_entry.entry.keys.len == 0)
|
||||||
ret = (c->db->hdb_nextkey)(context, c->db,
|
hdb_free_entry(context, &c->hdb_entry);
|
||||||
HDB_F_DECRYPT|
|
else
|
||||||
HDB_F_GET_CLIENT|HDB_F_GET_SERVER|HDB_F_GET_KRBTGT,
|
c->next = FALSE;
|
||||||
&c->hdb_entry);
|
}
|
||||||
if (ret == HDB_ERR_NOENTRY)
|
|
||||||
return KRB5_KT_END;
|
while (c->next) {
|
||||||
else if (ret)
|
ret = (c->db->hdb_nextkey)(context, c->db,
|
||||||
return ret;
|
HDB_F_DECRYPT|
|
||||||
|
HDB_F_GET_CLIENT|HDB_F_GET_SERVER|HDB_F_GET_KRBTGT,
|
||||||
/* If no keys on this entry, try again */
|
&c->hdb_entry);
|
||||||
if (c->hdb_entry.entry.keys.len == 0)
|
if (ret == HDB_ERR_NOENTRY)
|
||||||
hdb_free_entry(context, &c->hdb_entry);
|
return KRB5_KT_END;
|
||||||
else
|
else if (ret)
|
||||||
c->next = FALSE;
|
return ret;
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/* If no keys on this entry, try again */
|
||||||
* Return next enc type (keytabs are one slot per key, while
|
if (c->hdb_entry.entry.keys.len == 0)
|
||||||
* hdb is one record per principal.
|
hdb_free_entry(context, &c->hdb_entry);
|
||||||
*/
|
else
|
||||||
|
c->next = FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Return next enc type (keytabs are one slot per key, while
|
||||||
|
* hdb is one record per principal.
|
||||||
|
*/
|
||||||
|
|
||||||
|
ret = krb5_copy_principal(context,
|
||||||
|
c->hdb_entry.entry.principal,
|
||||||
|
&entry->principal);
|
||||||
|
if (ret)
|
||||||
|
return ret;
|
||||||
|
|
||||||
krb5_copy_principal(context,
|
entry->vno = c->hdb_entry.entry.kvno;
|
||||||
c->hdb_entry.entry.principal,
|
ret = krb5_copy_keyblock_contents(context,
|
||||||
&entry->principal);
|
&c->hdb_entry.entry.keys.val[c->key_idx].key,
|
||||||
entry->vno = c->hdb_entry.entry.kvno;
|
&entry->keyblock);
|
||||||
krb5_copy_keyblock_contents(context,
|
if (ret) {
|
||||||
&c->hdb_entry.entry.keys.val[c->key_idx].key,
|
krb5_free_principal(context, entry->principal);
|
||||||
&entry->keyblock);
|
memset(entry, 0, sizeof(*entry));
|
||||||
c->key_idx++;
|
return ret;
|
||||||
|
}
|
||||||
|
c->key_idx++;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Once we get to the end of the list, signal that we want the
|
||||||
|
* next entry
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (c->key_idx == c->hdb_entry.entry.keys.len) {
|
||||||
|
hdb_free_entry(context, &c->hdb_entry);
|
||||||
|
c->next = TRUE;
|
||||||
|
c->key_idx = 0;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
return 0;
|
||||||
* Once we get to the end of the list, signal that we want the
|
|
||||||
* next entry
|
|
||||||
*/
|
|
||||||
|
|
||||||
if (c->key_idx == c->hdb_entry.entry.keys.len) {
|
|
||||||
hdb_free_entry(context, &c->hdb_entry);
|
|
||||||
c->next = TRUE;
|
|
||||||
c->key_idx = 0;
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user