I haven't fully investigated this one yet (it's New Year's Eve and it's 4PM), but was wondering if there was any other report of this...
Trying to use trunk pstsdk 0_3_0 with the EID update to parse a large (800MB to 1.5GB) PST file, and it's blowing out when I call
std::ofstream imgFile(newfn, std::ios::out | std::ios::binary);
imgFile << attch;
I'm iterating through the attachments with
if(msg.get_attachment_count() > 0)
for(pstsdk::message::attachment_iterator iter = msg.attachment_begin(); iter != msg.attachment_end(); ++iter)
saveAttachment(foldername, messageID, wEid, *iter);
where "attch" in the snippet above is the parameter which "*iter" becomes.
Looking into the code, it appears that what is happening is we are using the ofstream write method to write a vector<pstsdk::byte>, but the vector is empty, so trying to write attch.length() bytes from it fails falling off the end of the vector. I
don't think it's a problem with my code, because it only happens on some attachments, not on all, and not on all PST files; but it happens repeatably on the PST files where it does fail.
I expect it'll be Wednesday before I get back to look at this, but I thought I should at least throw the floor open to suggestions...