- Timestamp:
- 06/02/09 16:00:38 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/reglookup-recover.c
r151 r152 285 285 else 286 286 { 287 if((cur_ancestor->key_type == REGFI_NK_TYPE_ROOTKEY1) 288 || (cur_ancestor->key_type == REGFI_NK_TYPE_ROOTKEY2)) 287 if(cur_ancestor->key_type & REGFI_NK_FLAG_ROOT) 289 288 virt_offset = REGFI_OFFSET_NONE; 290 289 else … … 482 481 if(vk->data_in_offset) 483 482 { 484 data = regfi_ parse_data(f, vk->type, vk->data_off,485 486 483 data = regfi_load_data(f, vk->type, vk->data_off, 484 vk->data_size, 4, 485 vk->data_in_offset, false); 487 486 vk->data = data.buf; 488 487 vk->data_size = data.len; … … 495 494 data_offset = vk->data_off+REGFI_REGF_SIZE; 496 495 data_maxsize = hbin->block_size + hbin->file_off - data_offset; 497 data = regfi_ parse_data(f, vk->type, data_offset,498 499 496 data = regfi_load_data(f, vk->type, data_offset, 497 vk->data_size, data_maxsize, 498 vk->data_in_offset, false); 500 499 vk->data = data.buf; 501 500 vk->data_size = data.len; … … 503 502 if(vk->data != NULL) 504 503 { 504 /* XXX: The following may not make sense now in light of big data 505 * records. 506 */ 505 507 /* XXX: This strict checking prevents partial recovery of data 506 * cells. Also, see code for regfi_ parse_data and note that508 * cells. Also, see code for regfi_load_data and note that 507 509 * lengths indicated in VK records are sometimes just plain 508 510 * wrong. Need a feedback mechanism to be more fuzzy with 509 511 * data cell lengths and the ranges removed. 510 512 * 511 * The introduction of REGFI_BUFFER in regfi_ parse_data has513 * The introduction of REGFI_BUFFER in regfi_load_data has 512 514 * fixed some of this. Should review again with respect to 513 515 * the other issues mentioned above though.
Note: See TracChangeset
for help on using the changeset viewer.