libyal / libpff

Library and tools to access the Personal Folder File (PFF) and the Offline Folder File (OFF) format
GNU Lesser General Public License v3.0
286 stars 74 forks source link

Does it support x64? My test program crashed in x64. #29

Closed fzusad closed 6 years ago

fzusad commented 7 years ago

Hello Joachim, I used it in Visual Studio 2008,my test program parsed PST file successfully in x86. However,it crashed in x64. It seems to occured at internal_record_entry = (libpff_internal_record_entry_t *) record_entry; in libpff_record_entry_get_value_utf8_string_size().

Looking forward to your replay.

joachimmetz commented 7 years ago

It should work on both x86 an x64 ? Can you provide me with more details such as

fzusad commented 7 years ago

The stacktrace: stacktrace

The final break in here in libuna_utf8_string_size_from_utf16_stream(). if( ( utf16_stream[ 0 ] == 0xfe ) && ( utf16_stream[ 1 ] == 0xff ) ) { read_byte_order = LIBUNA_ENDIAN_BIG; utf16_stream_index = 2; } The utf16_stream is neither null nor a valid pointer,so the program crashed.When i traced it, i found the address of utf16_stream[ ] is 0x000000000000000e. it is illegal.

joachimmetz commented 7 years ago

I'll have a closer look as part of https://github.com/libyal/libpff/issues/3

joachimmetz commented 6 years ago

libuna_utf8_string_size_from_utf16_stream has recently been updated in libuna. Could you please have a look with the latest libuna and, if you were using libpff experimental, the latest experimental version as well.

Marking as invalid seeing this looks like an issue in libuna (not in libpff). Closing for now but feel free to reopen if issue still persist.