Changeset 133 for trunk/lib/regfi.c


Ignore:
Timestamp:
01/12/09 12:07:58 (15 years ago)
Author:
tim
Message:

minor changes to winsec library

fixed major bug with data_in_offset values

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/lib/regfi.c

    r132 r133  
    688688  }
    689689
     690  /* XXX: call should look more like: */
     691  /*if (!(ret_val->sec_desc = winsec_parse_desc(sec_desc_buf, ret_val->desc_size)))*/
    690692  if (!sec_io_desc("sec_desc", &ret_val->sec_desc, &ps, 0))
    691693  {
     
    794796      return NULL;
    795797    }
    796    
     798
    797799    vk_offset =  voffsets[i] + REGF_BLOCKSIZE;
    798800    vk_max_length = hbin->block_size + hbin->file_off - vk_offset;
     
    853855      else
    854856        nk->values = NULL;
     857
    855858    }
    856859    else
     
    865868        return NULL;
    866869      }
     870
    867871    }
    868872  }
     
    12391243  bool found = false;
    12401244  uint32 old_subkey = i->cur_subkey;
    1241  
     1245
    12421246  if(subkey_name == NULL)
    12431247    return false;
     
    13581362
    13591363  nk_offset = i->cur_key->subkeys->elements[i->cur_subkey].nk_off;
    1360  
     1364
    13611365  return regfi_load_key(i->f, nk_offset+REGF_BLOCKSIZE, true);
    13621366}
     
    18811885    }
    18821886    ret_val->valuename[ret_val->name_length] = '\0';
     1887
    18831888  }
    18841889  else
     
    18961901  else
    18971902  {
    1898     hbin = regfi_lookup_hbin(file, ret_val->data_off);
    1899     if(hbin)
    1900     {
    1901       data_offset = ret_val->data_off+REGF_BLOCKSIZE;
    1902       data_maxsize = hbin->block_size + hbin->file_off - data_offset;
    1903       ret_val->data = regfi_parse_data(file, data_offset, raw_data_size,
    1904                                        data_maxsize, strict);
     1903    if(ret_val->data_in_offset)
     1904    {
     1905      ret_val->data = regfi_parse_data(file, data_offset,
     1906                                       raw_data_size, 4, strict);
    19051907    }
    19061908    else
    1907       ret_val->data = NULL;
     1909    {
     1910      hbin = regfi_lookup_hbin(file, ret_val->data_off);
     1911      if(hbin)
     1912      {
     1913        data_offset = ret_val->data_off+REGF_BLOCKSIZE;
     1914        data_maxsize = hbin->block_size + hbin->file_off - data_offset;
     1915        ret_val->data = regfi_parse_data(file, data_offset, raw_data_size,
     1916                                         data_maxsize, strict);
     1917       
     1918      }
     1919      else
     1920        ret_val->data = NULL;
     1921    }
    19081922
    19091923    if(strict && (ret_val->data == NULL))
Note: See TracChangeset for help on using the changeset viewer.