libextractor

GNU libextractor
Log | Files | Refs | Submodules | README | LICENSE

commit 64378f735beae58bedeba1564aa3b2084b68f613
parent 16081c8134b94dd51a27be812d0c6a34cbf96aa1
Author: Christian Grothoff <christian@grothoff.org>
Date:   Wed, 15 Mar 2006 05:24:17 +0000

fix

Diffstat:
Msrc/plugins/wordleaker/wordextractor.cc | 17+++++++++--------
1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/src/plugins/wordleaker/wordextractor.cc b/src/plugins/wordleaker/wordextractor.cc @@ -308,8 +308,16 @@ extern "C" { struct EXTRACTOR_Keywords * prev) { char ver[16]; char product[128]; - if (size < 512 + 898) + if ( (size < 512 + 898) || (filename == NULL) ) return prev; + + POLE::Storage* storage = new POLE::Storage(filename); + storage->open(); + if (storage->result() != POLE::Storage::Ok ) { + delete storage; + return prev; + } + const unsigned char * buffer = (const unsigned char*) &data[512]; unsigned int wIdent = buffer[0] + (buffer[1] << 8); unsigned int nProduct = buffer[4] + (buffer[5] << 8); @@ -357,13 +365,6 @@ extern "C" { prev); } - POLE::Storage* storage = new POLE::Storage( filename ); - storage->open(); - if (storage->result() != POLE::Storage::Ok ) { - delete storage; - return prev; - } - POLE::Stream * stream = storage->stream( "SummaryInformation" ); if (stream) { unsigned char buffer[256];