Fixing memory leak and zeroing on alloc.
This commit is contained in:
parent
268bbf105d
commit
71de4e77dc
|
@ -67,7 +67,6 @@ X_STATUS DiscImageEntry::QueryInfo(XFileInfo* out_info) {
|
||||||
X_STATUS DiscImageEntry::QueryDirectory(
|
X_STATUS DiscImageEntry::QueryDirectory(
|
||||||
XDirectoryInfo* out_info, size_t length, bool restart) {
|
XDirectoryInfo* out_info, size_t length, bool restart) {
|
||||||
XEASSERTNOTNULL(out_info);
|
XEASSERTNOTNULL(out_info);
|
||||||
xe_zero_struct(out_info, length);
|
|
||||||
|
|
||||||
if (restart == true && gdfx_entry_iterator_ != gdfx_entry_->children.end()) {
|
if (restart == true && gdfx_entry_iterator_ != gdfx_entry_->children.end()) {
|
||||||
gdfx_entry_iterator_ = gdfx_entry_->children.end();
|
gdfx_entry_iterator_ = gdfx_entry_->children.end();
|
||||||
|
|
|
@ -76,7 +76,6 @@ X_STATUS HostPathEntry::QueryInfo(XFileInfo* out_info) {
|
||||||
X_STATUS HostPathEntry::QueryDirectory(
|
X_STATUS HostPathEntry::QueryDirectory(
|
||||||
XDirectoryInfo* out_info, size_t length, bool restart) {
|
XDirectoryInfo* out_info, size_t length, bool restart) {
|
||||||
XEASSERTNOTNULL(out_info);
|
XEASSERTNOTNULL(out_info);
|
||||||
xe_zero_struct(out_info, length);
|
|
||||||
|
|
||||||
WIN32_FIND_DATA ffd;
|
WIN32_FIND_DATA ffd;
|
||||||
|
|
||||||
|
|
|
@ -46,7 +46,6 @@ X_STATUS STFSContainerEntry::QueryInfo(XFileInfo* out_info) {
|
||||||
X_STATUS STFSContainerEntry::QueryDirectory(
|
X_STATUS STFSContainerEntry::QueryDirectory(
|
||||||
XDirectoryInfo* out_info, size_t length, bool restart) {
|
XDirectoryInfo* out_info, size_t length, bool restart) {
|
||||||
XEASSERTNOTNULL(out_info);
|
XEASSERTNOTNULL(out_info);
|
||||||
xe_zero_struct(out_info, length);
|
|
||||||
|
|
||||||
if (restart && stfs_entry_iterator_ != stfs_entry_->children.end()) {
|
if (restart && stfs_entry_iterator_ != stfs_entry_->children.end()) {
|
||||||
stfs_entry_iterator_ = stfs_entry_->children.end();
|
stfs_entry_iterator_ = stfs_entry_->children.end();
|
||||||
|
|
|
@ -530,12 +530,13 @@ SHIM_CALL NtQueryDirectoryFile_shim(
|
||||||
result = state->object_table()->GetObject(
|
result = state->object_table()->GetObject(
|
||||||
file_handle, (XObject**)&file);
|
file_handle, (XObject**)&file);
|
||||||
if (XSUCCEEDED(result)) {
|
if (XSUCCEEDED(result)) {
|
||||||
XDirectoryInfo* dirInfo = (XDirectoryInfo*)xe_malloc(length);
|
XDirectoryInfo* dir_info = (XDirectoryInfo*)xe_calloc(length);
|
||||||
result = file->QueryDirectory(dirInfo, length, restart_scan != 0);
|
result = file->QueryDirectory(dir_info, length, restart_scan != 0);
|
||||||
if (XSUCCEEDED(result)) {
|
if (XSUCCEEDED(result)) {
|
||||||
dirInfo->Write(SHIM_MEM_BASE, file_info_ptr);
|
dir_info->Write(SHIM_MEM_BASE, file_info_ptr);
|
||||||
info = length;
|
info = length;
|
||||||
}
|
}
|
||||||
|
xe_free(dir_info);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (XFAILED(result)) {
|
if (XFAILED(result)) {
|
||||||
|
|
Loading…
Reference in New Issue