- Timestamp:
- 06/13/11 15:15:08 (14 years ago)
- Location:
- trunk
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/lib/regfi.c
r253 r255 1511 1511 regfi_log_add(REGFI_LOG_WARN, "Could not parse cell at offset" 1512 1512 " 0x%.8X while searching for root key.", cur_offset); 1513 return NULL;1513 goto error_locked; 1514 1514 } 1515 1515 … … 1530 1530 } 1531 1531 1532 return NULL; 1533 1534 error_locked: 1535 regfi_unlock(file, &file->cb_lock, "regfi_find_root_nk"); 1532 1536 return NULL; 1533 1537 } -
trunk/python/pyregfi/__init__.py
r253 r255 258 258 # Memory management for most regfi structures is taken care of here 259 259 def __del__(self): 260 regfi.regfi_free_record(self._hive.file, self._base) 260 if self._base: 261 regfi.regfi_free_record(self._hive.file, self._base) 261 262 262 263 … … 683 684 file = None 684 685 raw_file = None 685 _root = None 686 _fh = None 687 #_root = None 688 686 689 687 690 ## The root Key of this Hive … … 723 726 # The fileno method may not exist, or it may throw an exception 724 727 # when called if the file isn't backed with a descriptor. 728 self._fh = fh 725 729 fn = None 726 730 try: … … 766 770 767 771 def __del__(self): 768 regfi.regfi_free(self.file) 769 if self.raw_file != None: 770 self.raw_file = None 771 772 if self.file: 773 regfi.regfi_free(self.file) 772 774 773 775 def __iter__(self): -
trunk/python/pyregfi/structures.py
r253 r255 97 97 98 98 99 from winsec import *99 from .winsec import * 100 100 101 101 REGFI_VK._fields_ = [('offset', c_uint32), -
trunk/python/pyregfi/winsec.py
r254 r255 11 11 import ctypes.util 12 12 from ctypes import * 13 import structures 13 from .structures import regfi 14 14 15 15 is_win32 = hasattr(ctypes, 'windll') … … 77 77 ('dacl', POINTER(WINSEC_ACL)), 78 78 ] 79 80 structures.regfi.winsec_sid2str.argtypes = [POINTER(WINSEC_DOM_SID)] 81 structures.regfi.winsec_sid2str.restype = POINTER(c_char) 79 regfi.winsec_sid2str.argtypes = [POINTER(WINSEC_DOM_SID)] 80 regfi.winsec_sid2str.restype = POINTER(c_char) 82 81 83 82 … … 128 127 self.inherited_object = _guid2uuid(ace.inh_guid) 129 128 130 c_str = structures.regfi.winsec_sid2str(ace.trustee)129 c_str = regfi.winsec_sid2str(ace.trustee) 131 130 self.trustee = ctypes.cast(c_str, c_char_p).value.decode('utf-8', 'replace') 132 131 libc.free(c_str) … … 153 152 154 153 def __init__(self, sec_desc): 155 c_str = structures.regfi.winsec_sid2str(sec_desc.owner_sid)154 c_str = regfi.winsec_sid2str(sec_desc.owner_sid) 156 155 self.owner = ctypes.cast(c_str, c_char_p).value.decode('utf-8', 'replace') 157 156 libc.free(c_str) 158 157 159 c_str = structures.regfi.winsec_sid2str(sec_desc.grp_sid)158 c_str = regfi.winsec_sid2str(sec_desc.grp_sid) 160 159 self.group = ctypes.cast(c_str, c_char_p).value.decode('utf-8', 'replace') 161 160 libc.free(c_str)
Note: See TracChangeset
for help on using the changeset viewer.