Lines Matching +full:- +full:j

1 /* -*- mode: c; c-basic-offset: 4; indent-tabs-mode: nil -*- */
11 * struct(s) into krb5_db_entry struct(s) and vice-versa.
13 #include <k5-int.h>
23 #define ULOG_ENTRY_TYPE(upd, i) ((kdb_incr_update_t *)upd)->kdb_update.kdbe_t_val[i]
25 #define ULOG_ENTRY(upd, i) ((kdb_incr_update_t *)upd)->kdb_update.kdbe_t_val[i].kdbe_val_t_u
27 …e ULOG_ENTRY_KEYVAL(upd, i, j) ((kdb_incr_update_t *)upd)->kdb_update.kdbe_t_val[i].kdbe_val_t_u.a… argument
29 …G_ENTRY_PRINC(upd, i, j) ((kdb_incr_update_t *)upd)->kdb_update.kdbe_t_val[i].kdbe_val_t_u.av_prin… argument
31 …Y_MOD_PRINC(upd, i, j) ((kdb_incr_update_t *)upd)->kdb_update.kdbe_t_val[i].kdbe_val_t_u.av_mod_pr… argument
50 int i = 0, j = 0; in find_changed_attrs() local
54 if (current->attributes != new->attributes) in find_changed_attrs()
57 if (current->max_life != new->max_life) in find_changed_attrs()
60 if (current->max_renewable_life != new->max_renewable_life) in find_changed_attrs()
63 if (current->expiration != new->expiration) in find_changed_attrs()
66 if (current->pw_expiration != new->pw_expiration) in find_changed_attrs()
70 if (current->last_success != new->last_success) in find_changed_attrs()
73 if (current->last_failed != new->last_failed) in find_changed_attrs()
76 if (current->fail_auth_count != new->fail_auth_count) in find_changed_attrs()
80 if ((current->princ->type == new->princ->type) && in find_changed_attrs()
81 (current->princ->length == new->princ->length)) { in find_changed_attrs()
82 if ((current->princ->realm.length == in find_changed_attrs()
83 new->princ->realm.length) && in find_changed_attrs()
84 strncmp(current->princ->realm.data, in find_changed_attrs()
85 new->princ->realm.data, in find_changed_attrs()
86 current->princ->realm.length)) { in find_changed_attrs()
87 for (j = 0; j < current->princ->length; j++) { in find_changed_attrs()
88 if ((current->princ->data[j].data != NULL) && in find_changed_attrs()
89 (strncmp(current->princ->data[j].data, in find_changed_attrs()
90 new->princ->data[j].data, in find_changed_attrs()
91 current->princ->data[j].length))) { in find_changed_attrs()
103 if (current->n_key_data == new->n_key_data) { in find_changed_attrs()
105 for (j = 0; j < new->n_key_data; j++) { in find_changed_attrs()
106 if (current->key_data[j].key_data_kvno != in find_changed_attrs()
107 new->key_data[j].key_data_kvno) { in find_changed_attrs()
116 if (current->n_tl_data == new->n_tl_data) { in find_changed_attrs()
118 for (first = current->tl_data, second = new->tl_data; in find_changed_attrs()
119 first; first = first->tl_data_next, in find_changed_attrs()
120 second = second->tl_data_next) { in find_changed_attrs()
121 if ((first->tl_data_length == second->tl_data_length) && in find_changed_attrs()
122 (first->tl_data_type == second->tl_data_type)) { in find_changed_attrs()
123 if ((memcmp((char *)first->tl_data_contents, in find_changed_attrs()
124 (char *)second->tl_data_contents, in find_changed_attrs()
125 first->tl_data_length)) != 0) { in find_changed_attrs()
138 if (current->len != new->len) in find_changed_attrs()
147 /* Initialize *u with a copy of d. Return 0 on success, -1 on failure. */
151 u->utf8str_t_len = d.length; in data_to_utf8str()
153 u->utf8str_t_val = malloc(d.length); in data_to_utf8str()
154 if (u->utf8str_t_val == NULL) in data_to_utf8str()
155 return -1; in data_to_utf8str()
156 memcpy(u->utf8str_t_val, d.data, d.length); in data_to_utf8str()
158 u->utf8str_t_val = NULL; in data_to_utf8str()
180 p->k_nametype = (int32_t)princ->type; in conv_princ_2ulog()
182 if (data_to_utf8str(&p->k_realm, princ->realm) < 0) { in conv_princ_2ulog()
186 p->k_components.k_components_len = princ->length; in conv_princ_2ulog()
188 p->k_components.k_components_val = components in conv_princ_2ulog()
189 = malloc(princ->length * sizeof (kdbe_data_t)); in conv_princ_2ulog()
190 if (p->k_components.k_components_val == NULL) { in conv_princ_2ulog()
191 free(p->k_realm.utf8str_t_val); in conv_princ_2ulog()
192 p->k_realm.utf8str_t_val = NULL; in conv_princ_2ulog()
196 memset(components, 0, princ->length * sizeof(kdbe_data_t)); in conv_princ_2ulog()
197 for (i = 0; i < princ->length; i++) in conv_princ_2ulog()
199 for (i = 0; i < princ->length; i++) { in conv_princ_2ulog()
200 components[i].k_magic = princ->data[i].magic; in conv_princ_2ulog()
201 if (data_to_utf8str(&components[i].k_data, princ->data[i]) < 0) { in conv_princ_2ulog()
202 int j; in conv_princ_2ulog() local
203 for (j = 0; j < i; j++) { in conv_princ_2ulog()
204 free(components[j].k_data.utf8str_t_val); in conv_princ_2ulog()
205 components[j].k_data.utf8str_t_val = NULL; in conv_princ_2ulog()
208 p->k_components.k_components_val = NULL; in conv_princ_2ulog()
209 free(p->k_realm.utf8str_t_val); in conv_princ_2ulog()
210 p->k_realm.utf8str_t_val = NULL; in conv_princ_2ulog()
223 * Copies a UTF-8 string from ulog to a krb5_data object, which may
231 if (u.utf8str_t_len > INT_MAX - 1) { in set_from_utf8str()
232 d->data = NULL; in set_from_utf8str()
235 d->length = u.utf8str_t_len; in set_from_utf8str()
236 d->data = malloc(d->length + 1); in set_from_utf8str()
237 if (d->data == NULL) in set_from_utf8str()
239 if (d->length) /* Pointer may be null if length = 0. */ in set_from_utf8str()
240 strncpy(d->data, u.utf8str_t_val, d->length); in set_from_utf8str()
241 d->data[d->length] = 0; in set_from_utf8str()
251 int j; in conv_princ_2db() local
259 princ->length = 0; in conv_princ_2db()
260 princ->data = NULL; in conv_princ_2db()
262 components = kdbe_princ->k_components.k_components_val; in conv_princ_2db()
264 princ->type = (krb5_int32) kdbe_princ->k_nametype; in conv_princ_2db()
265 princ->realm.data = NULL; in conv_princ_2db()
266 set_from_utf8str(&princ->realm, kdbe_princ->k_realm); in conv_princ_2db()
267 if (princ->realm.data == NULL) in conv_princ_2db()
270 princ->data = calloc(kdbe_princ->k_components.k_components_len, in conv_princ_2db()
272 if (princ->data == NULL) in conv_princ_2db()
274 for (i = 0; i < kdbe_princ->k_components.k_components_len; i++) in conv_princ_2db()
275 princ->data[i].data = NULL; in conv_princ_2db()
276 princ->length = (krb5_int32)kdbe_princ->k_components.k_components_len; in conv_princ_2db()
278 for (j = 0; j < princ->length; j++) { in conv_princ_2db()
279 princ->data[j].magic = components[j].k_magic; in conv_princ_2db()
280 set_from_utf8str(&princ->data[j], components[j].k_data); in conv_princ_2db()
281 if (princ->data[j].data == NULL) in conv_princ_2db()
301 int i, j, cnt, final, nattrs, tmpint; in ulog_conv_2logentry() local
310 final = -1; in ulog_conv_2logentry()
318 if ((update->kdb_update.kdbe_t_val = (kdbe_val_t *) in ulog_conv_2logentry()
332 ret = krb5_db_get_principal(context, entry->princ, 0, &curr); in ulog_conv_2logentry()
341 * include all the attribute-value pairs in ulog_conv_2logentry()
345 * encompasses these other types-turned-attributes in ulog_conv_2logentry()
352 while (nattrs < MAXATTRS_SIZE - 8) { in ulog_conv_2logentry()
357 /* Always exclude non-replicated attributes for now. */ in ulog_conv_2logentry()
365 if (entry->attributes >= 0) { in ulog_conv_2logentry()
369 (uint32_t)entry->attributes; in ulog_conv_2logentry()
374 if (entry->max_life >= 0) { in ulog_conv_2logentry()
377 (uint32_t)entry->max_life; in ulog_conv_2logentry()
382 if (entry->max_renewable_life >= 0) { in ulog_conv_2logentry()
385 (uint32_t)entry->max_renewable_life; in ulog_conv_2logentry()
390 if (entry->expiration >= 0) { in ulog_conv_2logentry()
392 ULOG_ENTRY(update, final).av_exp = (uint32_t)entry->expiration; in ulog_conv_2logentry()
397 if (entry->pw_expiration >= 0) { in ulog_conv_2logentry()
400 (uint32_t)entry->pw_expiration; in ulog_conv_2logentry()
405 if (entry->princ->length > 0) { in ulog_conv_2logentry()
407 if ((ret = conv_princ_2ulog(entry->princ, in ulog_conv_2logentry()
417 if (entry->n_key_data >= 0) { in ulog_conv_2logentry()
420 entry->n_key_data; in ulog_conv_2logentry()
422 malloc(entry->n_key_data * sizeof (kdbe_key_t)); in ulog_conv_2logentry()
429 for (j = 0; j < entry->n_key_data; j++) { in ulog_conv_2logentry()
430 ULOG_ENTRY_KEYVAL(update, final, j).k_ver = in ulog_conv_2logentry()
431 entry->key_data[j].key_data_ver; in ulog_conv_2logentry()
432 ULOG_ENTRY_KEYVAL(update, final, j).k_kvno = in ulog_conv_2logentry()
433 entry->key_data[j].key_data_kvno; in ulog_conv_2logentry()
434 … ULOG_ENTRY_KEYVAL(update, final, j).k_enctype.k_enctype_len = entry->key_data[j].key_data_ver; in ulog_conv_2logentry()
435 … ULOG_ENTRY_KEYVAL(update, final, j).k_contents.k_contents_len = entry->key_data[j].key_data_ver; in ulog_conv_2logentry()
437 …ULOG_ENTRY_KEYVAL(update, final, j).k_enctype.k_enctype_val = malloc(entry->key_data[j].key_data_v… in ulog_conv_2logentry()
438 if (ULOG_ENTRY_KEYVAL(update, final, j).k_enctype.k_enctype_val == NULL) { in ulog_conv_2logentry()
443 …ULOG_ENTRY_KEYVAL(update, final, j).k_contents.k_contents_val = malloc(entry->key_data[j].key_data… in ulog_conv_2logentry()
444 if (ULOG_ENTRY_KEYVAL(update, final, j).k_contents.k_contents_val == NULL) { in ulog_conv_2logentry()
449 for (cnt = 0; cnt < entry->key_data[j].key_data_ver; in ulog_conv_2logentry()
451 …ULOG_ENTRY_KEYVAL(update, final, j).k_enctype.k_enctype_val[cnt] = entry->key_data[j].key_data_typ… in ulog_conv_2logentry()
452 …ULOG_ENTRY_KEYVAL(update, final, j).k_contents.k_contents_val[cnt].utf8str_t_len = entry->key_data… in ulog_conv_2logentry()
453 …ULOG_ENTRY_KEYVAL(update, final, j).k_contents.k_contents_val[cnt].utf8str_t_val = malloc(entry->k… in ulog_conv_2logentry()
454 … if (ULOG_ENTRY_KEYVAL(update, final, j).k_contents.k_contents_val[cnt].utf8str_t_val == NULL) { in ulog_conv_2logentry()
458 …KEYVAL(update, final, j).k_contents.k_contents_val[cnt].utf8str_t_val, entry->key_data[j].key_data… in ulog_conv_2logentry()
488 newtl = entry->tl_data; in ulog_conv_2logentry()
490 switch (newtl->tl_data_type) { in ulog_conv_2logentry()
501 malloc(entry->n_tl_data * sizeof(kdbe_tl_t)); in ulog_conv_2logentry()
513 … ULOG_ENTRY(update, final).av_tldata.av_tldata_val[tmpint].tl_type = newtl->tl_data_type; in ulog_conv_2logentry()
514 …G_ENTRY(update, final).av_tldata.av_tldata_val[tmpint].tl_data.tl_data_len = newtl->tl_data_length; in ulog_conv_2logentry()
515 …e, final).av_tldata.av_tldata_val[tmpint].tl_data.tl_data_val = malloc(newtl->tl_data_length * siz… in ulog_conv_2logentry()
520 …nal).av_tldata.av_tldata_val[tmpint].tl_data.tl_data_val, newtl->tl_data_contents, newtl->tl_data_… in ulog_conv_2logentry()
523 newtl = newtl->tl_data_next; in ulog_conv_2logentry()
530 ULOG_ENTRY(update, final).av_len = (int16_t)entry->len; in ulog_conv_2logentry()
544 update->kdb_update.kdbe_t_len = ++final; in ulog_conv_2logentry()
556 int i, j, cnt = 0, mod_time = 0, nattrs; in ulog_conv_2dbentry() local
567 replica = (context->kdblog_context != NULL) && in ulog_conv_2dbentry()
568 (context->kdblog_context->iproprole == IPROP_REPLICA); in ulog_conv_2dbentry()
573 nattrs = update->kdb_update.kdbe_t_len; in ulog_conv_2dbentry()
575 dbprincstr = k5memdup0(update->kdb_princ_name.utf8str_t_val, in ulog_conv_2dbentry()
576 update->kdb_princ_name.utf8str_t_len, &ret); in ulog_conv_2dbentry()
592 * Set ent->n_tl_data = 0 initially, if this is an ADD update in ulog_conv_2dbentry()
598 ent->n_tl_data = 0; in ulog_conv_2dbentry()
607 ent->attributes = (krb5_flags) u.av_attrflags; in ulog_conv_2dbentry()
611 ent->max_life = (krb5_deltat) u.av_max_life; in ulog_conv_2dbentry()
615 ent->max_renewable_life = (krb5_deltat) u.av_max_renew_life; in ulog_conv_2dbentry()
619 ent->expiration = (krb5_timestamp) u.av_exp; in ulog_conv_2dbentry()
623 ent->pw_expiration = (krb5_timestamp) u.av_pw_exp; in ulog_conv_2dbentry()
628 ent->last_success = (krb5_timestamp) u.av_last_success; in ulog_conv_2dbentry()
633 ent->last_failed = (krb5_timestamp) u.av_last_failed; in ulog_conv_2dbentry()
638 ent->fail_auth_count = (krb5_kvno) u.av_fail_auth_count; in ulog_conv_2dbentry()
647 krb5_free_principal(context, ent->princ); in ulog_conv_2dbentry()
648 ent->princ = tmpprinc; in ulog_conv_2dbentry()
653 prev_n_keys = ent->n_key_data; in ulog_conv_2dbentry()
656 ent->n_key_data = (krb5_int16)u.av_keydata.av_keydata_len; in ulog_conv_2dbentry()
658 ent->key_data = NULL; in ulog_conv_2dbentry()
661 newptr = realloc(ent->key_data, (ent->n_key_data + 1) * in ulog_conv_2dbentry()
667 ent->key_data = newptr; in ulog_conv_2dbentry()
670 for (j = prev_n_keys; j < ent->n_key_data; j++) { in ulog_conv_2dbentry()
672 ent->key_data[j].key_data_contents[cnt] = NULL; in ulog_conv_2dbentry()
675 for (j = 0; j < ent->n_key_data; j++) { in ulog_conv_2dbentry()
676 krb5_key_data *kp = &ent->key_data[j]; in ulog_conv_2dbentry()
677 kdbe_key_t *kv = &ULOG_ENTRY_KEYVAL(update, i, j); in ulog_conv_2dbentry()
678 kp->key_data_ver = (krb5_int16)kv->k_ver; in ulog_conv_2dbentry()
679 kp->key_data_kvno = (krb5_ui_2)kv->k_kvno; in ulog_conv_2dbentry()
680 if (kp->key_data_ver > 2) { in ulog_conv_2dbentry()
685 for (cnt = 0; cnt < kp->key_data_ver; cnt++) { in ulog_conv_2dbentry()
686 kp->key_data_type[cnt] = (krb5_int16)kv->k_enctype.k_enctype_val[cnt]; in ulog_conv_2dbentry()
687 … kp->key_data_length[cnt] = (krb5_int16)kv->k_contents.k_contents_val[cnt].utf8str_t_len; in ulog_conv_2dbentry()
688 newptr = realloc(kp->key_data_contents[cnt], in ulog_conv_2dbentry()
689 kp->key_data_length[cnt]); in ulog_conv_2dbentry()
694 kp->key_data_contents[cnt] = newptr; in ulog_conv_2dbentry()
696 (void) memset(kp->key_data_contents[cnt], 0, in ulog_conv_2dbentry()
697 kp->key_data_length[cnt]); in ulog_conv_2dbentry()
698 (void) memcpy(kp->key_data_contents[cnt], in ulog_conv_2dbentry()
699 kv->k_contents.k_contents_val[cnt].utf8str_t_val, in ulog_conv_2dbentry()
700 kp->key_data_length[cnt]); in ulog_conv_2dbentry()
706 for (j = 0; j < (int)u.av_tldata.av_tldata_len; j++) { in ulog_conv_2dbentry()
707 newtl.tl_data_type = (krb5_int16)u.av_tldata.av_tldata_val[j].tl_type; in ulog_conv_2dbentry()
708 newtl.tl_data_length = (krb5_int16)u.av_tldata.av_tldata_val[j].tl_data.tl_data_len; in ulog_conv_2dbentry()
709 … newtl.tl_data_contents = (krb5_octet *)u.av_tldata.av_tldata_val[j].tl_data.tl_data_val; in ulog_conv_2dbentry()
739 ent->len = (krb5_int16) u.av_len; in ulog_conv_2dbentry()
777 unsigned int i, j; in ulog_free_entries() local
791 * ulog entry - kdb_princ_name in ulog_free_entries()
793 free(upd->kdb_princ_name.utf8str_t_val); in ulog_free_entries()
798 * ulog entry - kdb_kdcs_seen_by in ulog_free_entries()
800 if (upd->kdb_kdcs_seen_by.kdb_kdcs_seen_by_val) { in ulog_free_entries()
801 for (i = 0; i < upd->kdb_kdcs_seen_by.kdb_kdcs_seen_by_len; i++) in ulog_free_entries()
802 free(upd->kdb_kdcs_seen_by.kdb_kdcs_seen_by_val[i].utf8str_t_val); in ulog_free_entries()
803 free(upd->kdb_kdcs_seen_by.kdb_kdcs_seen_by_val); in ulog_free_entries()
807 * ulog entry - kdb_futures in ulog_free_entries()
809 free(upd->kdb_futures.kdb_futures_val); in ulog_free_entries()
812 * ulog entry - kdb_update in ulog_free_entries()
814 if (upd->kdb_update.kdbe_t_val) { in ulog_free_entries()
818 for (i = 0; i < upd->kdb_update.kdbe_t_len; i++) { in ulog_free_entries()
825 for (j = 0; j < ULOG_ENTRY(upd, i).av_keydata.av_keydata_len; j++) { in ulog_free_entries()
826 free(ULOG_ENTRY_KEYVAL(upd, i, j).k_enctype.k_enctype_val); in ulog_free_entries()
827 if (ULOG_ENTRY_KEYVAL(upd, i, j).k_contents.k_contents_val) { in ulog_free_entries()
828 for (k = 0; k < ULOG_ENTRY_KEYVAL(upd, i, j).k_ver; k++) { in ulog_free_entries()
829 … free(ULOG_ENTRY_KEYVAL(upd, i, j).k_contents.k_contents_val[k].utf8str_t_val); in ulog_free_entries()
831 free(ULOG_ENTRY_KEYVAL(upd, i, j).k_contents.k_contents_val); in ulog_free_entries()
842 for (j = 0; j < ULOG_ENTRY(upd, i).av_tldata.av_tldata_len; j++) { in ulog_free_entries()
843 free(ULOG_ENTRY(upd, i).av_tldata.av_tldata_val[j].tl_data.tl_data_val); in ulog_free_entries()
854 … for (j = 0; j < ULOG_ENTRY(upd, i).av_princ.k_components.k_components_len; j++) { in ulog_free_entries()
855 free(ULOG_ENTRY_PRINC(upd, i, j).k_data.utf8str_t_val); in ulog_free_entries()
867 … for (j = 0; j < ULOG_ENTRY(upd, i).av_mod_princ.k_components.k_components_len; j++) { in ulog_free_entries()
868 free(ULOG_ENTRY_MOD_PRINC(upd, i, j).k_data.utf8str_t_val); in ulog_free_entries()
902 free(upd->kdb_update.kdbe_t_val); in ulog_free_entries()