regf 134 source4/lib/registry/regf.c static bool hbin_get_tdr(struct regf_data *regf, uint32_t offset, regf 137 source4/lib/registry/regf.c struct tdr_pull *pull = tdr_pull_init(regf, regf->iconv_convenience); regf 139 source4/lib/registry/regf.c pull->data = hbin_get(regf, offset); regf 393 source4/lib/registry/regf.c static uint32_t hbin_store_tdr_resize(struct regf_data *regf, regf 397 source4/lib/registry/regf.c struct tdr_push *push = tdr_push_init(regf, regf->iconv_convenience); regf 405 source4/lib/registry/regf.c ret = hbin_store_resize(regf, orig_offset, push->data); regf 469 source4/lib/registry/regf.c struct regf_data *regf, regf 477 source4/lib/registry/regf.c ret->hive = talloc_reference(ret, regf); regf 485 source4/lib/registry/regf.c if (!hbin_get_tdr(regf, offset, nk, regf 508 source4/lib/registry/regf.c struct regf_data *regf = private_data->hive; regf 515 source4/lib/registry/regf.c tmp = hbin_get(regf, private_data->nk->values_offset); regf 530 source4/lib/registry/regf.c if (!hbin_get_tdr(regf, vk_offset, vk, regf 549 source4/lib/registry/regf.c *data = hbin_get(regf, vk->data_offset); regf 1043 source4/lib/registry/regf.c struct regf_data *regf = private_data->hive; regf 1050 source4/lib/registry/regf.c hbin_get_tdr(regf, regf->header->data_offset, regf, regf 1054 source4/lib/registry/regf.c if (!NDR_ERR_CODE_IS_SUCCESS(ndr_push_struct_blob(&data, regf, NULL, regf 1061 source4/lib/registry/regf.c if (!hbin_get_tdr(regf, private_data->nk->sk_offset, regf, regf 1075 source4/lib/registry/regf.c if (!hbin_get_tdr(regf, cur_sk.prev_offset, regf, regf 1082 source4/lib/registry/regf.c hbin_store_tdr_resize(regf, (tdr_push_fn_t) tdr_push_sk_block, regf 1086 source4/lib/registry/regf.c if (!hbin_get_tdr(regf, cur_sk.next_offset, regf, regf 1093 source4/lib/registry/regf.c hbin_store_tdr_resize(regf, (tdr_push_fn_t) tdr_push_sk_block, regf 1096 source4/lib/registry/regf.c hbin_free(regf, private_data->nk->sk_offset); regf 1107 source4/lib/registry/regf.c if (!hbin_get_tdr(regf, sk_offset, regf, regf 1115 source4/lib/registry/regf.c hbin_store_tdr_resize(regf, regf 1118 source4/lib/registry/regf.c hbin_store_tdr_resize(regf, regf 1135 source4/lib/registry/regf.c sk_offset = hbin_store_tdr(regf, regf 1145 source4/lib/registry/regf.c hbin_store_tdr_resize(regf, regf 1151 source4/lib/registry/regf.c if (!hbin_get_tdr(regf, new_sk.prev_offset, regf, regf 1158 source4/lib/registry/regf.c hbin_store_tdr_resize(regf, regf 1163 source4/lib/registry/regf.c if (!hbin_get_tdr(regf, new_sk.next_offset, regf, regf 1170 source4/lib/registry/regf.c hbin_store_tdr_resize(regf, regf 1176 source4/lib/registry/regf.c hbin_store_tdr_resize(regf, regf 1188 source4/lib/registry/regf.c struct regf_data *regf = private_data->hive; regf 1191 source4/lib/registry/regf.c if (!hbin_get_tdr(regf, private_data->nk->sk_offset, ctx, regf 1216 source4/lib/registry/regf.c static WERROR regf_sl_add_entry(struct regf_data *regf, uint32_t list_offset, regf 1224 source4/lib/registry/regf.c if (regf->header->version.major != 1) { regf 1228 source4/lib/registry/regf.c if (regf->header->version.minor < 3) { regf 1235 source4/lib/registry/regf.c li.nk_offset = talloc_array(regf, uint32_t, 1); regf 1239 source4/lib/registry/regf.c *ret = hbin_store_tdr(regf, regf 1244 source4/lib/registry/regf.c } else if (regf->header->version.minor == 3 || regf 1245 source4/lib/registry/regf.c regf->header->version.minor == 4) { regf 1252 source4/lib/registry/regf.c lf.hr = talloc_array(regf, struct hash_record, 1); regf 1258 source4/lib/registry/regf.c *ret = hbin_store_tdr(regf, regf 1263 source4/lib/registry/regf.c } else if (regf->header->version.minor == 5) { regf 1270 source4/lib/registry/regf.c lh.hr = talloc_array(regf, struct lh_hash, 1); regf 1275 source4/lib/registry/regf.c *ret = hbin_store_tdr(regf, regf 1284 source4/lib/registry/regf.c data = hbin_get(regf, list_offset); regf 1291 source4/lib/registry/regf.c struct tdr_pull *pull = tdr_pull_init(regf, regf->iconv_convenience); regf 1296 source4/lib/registry/regf.c if (NT_STATUS_IS_ERR(tdr_pull_li_block(pull, regf, &li))) { regf 1309 source4/lib/registry/regf.c li.nk_offset = talloc_realloc(regf, li.nk_offset, regf 1314 source4/lib/registry/regf.c *ret = hbin_store_tdr_resize(regf, regf 1320 source4/lib/registry/regf.c struct tdr_pull *pull = tdr_pull_init(regf, regf->iconv_convenience); regf 1325 source4/lib/registry/regf.c if (NT_STATUS_IS_ERR(tdr_pull_lf_block(pull, regf, &lf))) { regf 1333 source4/lib/registry/regf.c lf.hr = talloc_realloc(regf, lf.hr, struct hash_record, regf 1340 source4/lib/registry/regf.c *ret = hbin_store_tdr_resize(regf, regf 1346 source4/lib/registry/regf.c struct tdr_pull *pull = tdr_pull_init(regf, regf->iconv_convenience); regf 1351 source4/lib/registry/regf.c if (NT_STATUS_IS_ERR(tdr_pull_lh_block(pull, regf, &lh))) { regf 1359 source4/lib/registry/regf.c lh.hr = talloc_realloc(regf, lh.hr, struct lh_hash, regf 1365 source4/lib/registry/regf.c *ret = hbin_store_tdr_resize(regf, regf 1382 source4/lib/registry/regf.c static WERROR regf_sl_del_entry(struct regf_data *regf, uint32_t list_offset, regf 1387 source4/lib/registry/regf.c data = hbin_get(regf, list_offset); regf 1395 source4/lib/registry/regf.c struct tdr_pull *pull = tdr_pull_init(regf, regf->iconv_convenience); regf 1403 source4/lib/registry/regf.c if (NT_STATUS_IS_ERR(tdr_pull_li_block(pull, regf, &li))) { regf 1429 source4/lib/registry/regf.c hbin_free(regf, list_offset); regf 1434 source4/lib/registry/regf.c *ret = hbin_store_tdr_resize(regf, regf 1439 source4/lib/registry/regf.c struct tdr_pull *pull = tdr_pull_init(regf, regf->iconv_convenience); regf 1447 source4/lib/registry/regf.c if (NT_STATUS_IS_ERR(tdr_pull_lf_block(pull, regf, &lf))) { regf 1474 source4/lib/registry/regf.c hbin_free(regf, list_offset); regf 1480 source4/lib/registry/regf.c *ret = hbin_store_tdr_resize(regf, regf 1485 source4/lib/registry/regf.c struct tdr_pull *pull = tdr_pull_init(regf, regf->iconv_convenience); regf 1493 source4/lib/registry/regf.c if (NT_STATUS_IS_ERR(tdr_pull_lh_block(pull, regf, &lh))) { regf 1520 source4/lib/registry/regf.c hbin_free(regf, list_offset); regf 1526 source4/lib/registry/regf.c *ret = hbin_store_tdr_resize(regf, regf 1543 source4/lib/registry/regf.c struct regf_data *regf = private_data->hive; regf 1555 source4/lib/registry/regf.c values = hbin_get(regf, nk->values_offset); regf 1562 source4/lib/registry/regf.c if (!hbin_get_tdr(regf, vk_offset, private_data, regf 1570 source4/lib/registry/regf.c hbin_free(regf, vk_offset); regf 1584 source4/lib/registry/regf.c hbin_free(regf, nk->values_offset); regf 1587 source4/lib/registry/regf.c nk->values_offset = hbin_store_resize(regf, regf 1591 source4/lib/registry/regf.c hbin_store_tdr_resize(regf, (tdr_push_fn_t) tdr_push_nk_block, regf 1704 source4/lib/registry/regf.c struct regf_data *regf = private_data->hive; regf 1728 source4/lib/registry/regf.c if (!hbin_get_tdr(regf, regf->header->data_offset, root, regf 1737 source4/lib/registry/regf.c offset = hbin_store_tdr(regf, (tdr_push_fn_t) tdr_push_nk_block, &nk); regf 1739 source4/lib/registry/regf.c error = regf_sl_add_entry(regf, parent_nk->subkeys_offset, name, offset, regf 1742 source4/lib/registry/regf.c hbin_free(regf, offset); regf 1749 source4/lib/registry/regf.c hbin_store_tdr_resize(regf, (tdr_push_fn_t) tdr_push_nk_block, regf 1752 source4/lib/registry/regf.c *ret = (struct hive_key *)regf_get_key(ctx, regf, offset); regf 1761 source4/lib/registry/regf.c struct regf_data *regf = private_data->hive; regf 1772 source4/lib/registry/regf.c values = hbin_get(regf, nk->values_offset); regf 1776 source4/lib/registry/regf.c if (!hbin_get_tdr(regf, tmp_vk_offset, private_data, regf 1790 source4/lib/registry/regf.c hbin_free(regf, vk.data_offset); regf 1812 source4/lib/registry/regf.c vk.data_offset = hbin_store(regf, data); regf 1816 source4/lib/registry/regf.c vk_offset = hbin_store_tdr(regf, regf 1821 source4/lib/registry/regf.c vk_offset = hbin_store_tdr_resize(regf, regf 1828 source4/lib/registry/regf.c nk->values_offset = hbin_store_tdr(regf, regf 1856 source4/lib/registry/regf.c nk->values_offset = hbin_store_resize(regf, regf 1862 source4/lib/registry/regf.c hbin_store_tdr_resize(regf, regf 1868 source4/lib/registry/regf.c static WERROR regf_save_hbin(struct regf_data *regf) regf 1870 source4/lib/registry/regf.c struct tdr_push *push = tdr_push_init(regf, regf->iconv_convenience); regf 1875 source4/lib/registry/regf.c if (lseek(regf->fd, 0, SEEK_SET) == -1) { regf 1881 source4/lib/registry/regf.c if (NT_STATUS_IS_ERR(tdr_push_regf_hdr(push, regf->header))) { regf 1885 source4/lib/registry/regf.c regf->header->chksum = regf_hdr_checksum(push->data.data); regf 1888 source4/lib/registry/regf.c if (NT_STATUS_IS_ERR(tdr_push_to_fd(regf->fd, regf->iconv_convenience, regf 1890 source4/lib/registry/regf.c regf->header))) { regf 1895 source4/lib/registry/regf.c if (lseek(regf->fd, 0x1000, SEEK_SET) == -1) { regf 1900 source4/lib/registry/regf.c for (i = 0; regf->hbins[i]; i++) { regf 1901 source4/lib/registry/regf.c if (NT_STATUS_IS_ERR(tdr_push_to_fd(regf->fd, regf->iconv_convenience, regf 1903 source4/lib/registry/regf.c regf->hbins[i]))) { regf 1917 source4/lib/registry/regf.c struct regf_data *regf; regf 1926 source4/lib/registry/regf.c regf = (struct regf_data *)talloc_zero(NULL, struct regf_data); regf 1928 source4/lib/registry/regf.c regf->iconv_convenience = iconv_convenience; regf 1930 source4/lib/registry/regf.c W_ERROR_HAVE_NO_MEMORY(regf); regf 1935 source4/lib/registry/regf.c regf->fd = creat(location, 0644); regf 1937 source4/lib/registry/regf.c if (regf->fd == -1) { regf 1940 source4/lib/registry/regf.c talloc_free(regf); regf 1944 source4/lib/registry/regf.c regf_hdr = talloc_zero(regf, struct regf_hdr); regf 1956 source4/lib/registry/regf.c regf->header = regf_hdr; regf 1959 source4/lib/registry/regf.c regf->hbins = talloc_array(regf, struct hbin_block *, 1); regf 1960 source4/lib/registry/regf.c W_ERROR_HAVE_NO_MEMORY(regf->hbins); regf 1961 source4/lib/registry/regf.c regf->hbins[0] = NULL; regf 1988 source4/lib/registry/regf.c sd = security_descriptor_dacl_create(regf, regf 1998 source4/lib/registry/regf.c if (!NDR_ERR_CODE_IS_SUCCESS(ndr_push_struct_blob(&data, regf, NULL, regf 2013 source4/lib/registry/regf.c regf->header->data_offset = hbin_store_tdr(regf, regf 2017 source4/lib/registry/regf.c sk_offset = hbin_store_tdr(regf, regf 2026 source4/lib/registry/regf.c *key = (struct hive_key *)regf_get_key(parent_ctx, regf, regf 2027 source4/lib/registry/regf.c regf->header->data_offset); regf 2029 source4/lib/registry/regf.c error = regf_save_hbin(regf); regf 2035 source4/lib/registry/regf.c talloc_free(regf); regf 2043 source4/lib/registry/regf.c struct regf_data *regf; regf 2048 source4/lib/registry/regf.c regf = (struct regf_data *)talloc_zero(parent_ctx, struct regf_data); regf 2050 source4/lib/registry/regf.c regf->iconv_convenience = iconv_convenience; regf 2052 source4/lib/registry/regf.c W_ERROR_HAVE_NO_MEMORY(regf); regf 2057 source4/lib/registry/regf.c regf->fd = open(location, O_RDWR); regf 2059 source4/lib/registry/regf.c if (regf->fd == -1) { regf 2062 source4/lib/registry/regf.c talloc_free(regf); regf 2066 source4/lib/registry/regf.c pull = tdr_pull_init(regf, regf->iconv_convenience); regf 2068 source4/lib/registry/regf.c pull->data.data = (uint8_t*)fd_load(regf->fd, &pull->data.length, 0, regf); regf 2072 source4/lib/registry/regf.c talloc_free(regf); regf 2076 source4/lib/registry/regf.c regf_hdr = talloc(regf, struct regf_hdr); regf 2080 source4/lib/registry/regf.c talloc_free(regf); regf 2084 source4/lib/registry/regf.c regf->header = regf_hdr; regf 2089 source4/lib/registry/regf.c talloc_free(regf); regf 2098 source4/lib/registry/regf.c talloc_free(regf); regf 2106 source4/lib/registry/regf.c regf->hbins = talloc_array(regf, struct hbin_block *, 1); regf 2107 source4/lib/registry/regf.c W_ERROR_HAVE_NO_MEMORY(regf->hbins); regf 2109 source4/lib/registry/regf.c regf->hbins[0] = NULL; regf 2112 source4/lib/registry/regf.c pull->offset <= regf->header->last_block) { regf 2113 source4/lib/registry/regf.c struct hbin_block *hbin = talloc(regf->hbins, regf 2120 source4/lib/registry/regf.c talloc_free(regf); regf 2127 source4/lib/registry/regf.c talloc_free(regf); regf 2131 source4/lib/registry/regf.c regf->hbins[i] = hbin; regf 2133 source4/lib/registry/regf.c regf->hbins = talloc_realloc(regf, regf->hbins, regf 2135 source4/lib/registry/regf.c regf->hbins[i] = NULL; regf 2142 source4/lib/registry/regf.c *key = (struct hive_key *)regf_get_key(parent_ctx, regf, regf 2143 source4/lib/registry/regf.c regf->header->data_offset); regf 2146 source4/lib/registry/regf.c talloc_free(regf);