mirror of
https://github.com/ivellioscolin/pykd.git
synced 2025-04-21 04:13:22 +08:00
[!] bug fixed: issue #7727 ( loadUnicodeString returns empty string )
git-svn-id: https://pykd.svn.codeplex.com/svn@57972 9b283d60-5439-405e-af05-b73fd8c4d996
This commit is contained in:
parent
56110ea78f
commit
c1db435c56
@ -185,9 +185,7 @@ loadUnicodeStr( ULONG64 address )
|
|||||||
USHORT length;
|
USHORT length;
|
||||||
USHORT maximumLength;
|
USHORT maximumLength;
|
||||||
ULONG64 buffer = 0;
|
ULONG64 buffer = 0;
|
||||||
|
|
||||||
wchar_t *str = NULL;
|
wchar_t *str = NULL;
|
||||||
char *ansiStr = NULL;
|
|
||||||
|
|
||||||
do {
|
do {
|
||||||
|
|
||||||
@ -225,21 +223,22 @@ loadUnicodeStr( ULONG64 address )
|
|||||||
address += 4;
|
address += 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
str = new wchar_t[ length/2 ];
|
wchar_t *str = new wchar_t[ length/2 ];
|
||||||
|
|
||||||
if ( !loadMemory( buffer, str, length ) )
|
if ( !loadMemory( buffer, str, length ) )
|
||||||
break;
|
break;
|
||||||
|
|
||||||
boost::python::object( std::wstring(str) );
|
std::wstring strValue(str, length/2);
|
||||||
|
|
||||||
|
delete[] str;
|
||||||
|
|
||||||
|
return boost::python::object( strValue );
|
||||||
|
|
||||||
} while( FALSE );
|
} while( FALSE );
|
||||||
|
|
||||||
if ( str )
|
if ( str )
|
||||||
delete[] str;
|
delete[] str;
|
||||||
|
|
||||||
if ( ansiStr )
|
|
||||||
delete[] ansiStr;
|
|
||||||
|
|
||||||
return boost::python::object( "" );
|
return boost::python::object( "" );
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -252,8 +251,7 @@ loadAnsiStr( ULONG64 address )
|
|||||||
USHORT length;
|
USHORT length;
|
||||||
USHORT maximumLength;
|
USHORT maximumLength;
|
||||||
ULONG64 buffer = 0;
|
ULONG64 buffer = 0;
|
||||||
|
char *str = NULL;
|
||||||
char *ansiStr = NULL;
|
|
||||||
|
|
||||||
do {
|
do {
|
||||||
|
|
||||||
@ -292,21 +290,21 @@ loadAnsiStr( ULONG64 address )
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
ansiStr = new char [ length/2 ];
|
str = new char [ length ];
|
||||||
|
|
||||||
if ( !loadMemory( buffer, ansiStr, length ) )
|
if ( !loadMemory( buffer, str, length ) )
|
||||||
break;
|
break;
|
||||||
|
|
||||||
std::string strVal ( ansiStr, length/2 );
|
std::string strVal ( str, length );
|
||||||
|
|
||||||
delete[] ansiStr;
|
delete[] str;
|
||||||
|
|
||||||
return boost::python::object( strVal );
|
return boost::python::object( strVal );
|
||||||
|
|
||||||
} while( FALSE );
|
} while( FALSE );
|
||||||
|
|
||||||
if ( ansiStr )
|
if ( str )
|
||||||
delete[] ansiStr;
|
delete[] str;
|
||||||
|
|
||||||
return boost::python::object( "" );
|
return boost::python::object( "" );
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user