This commit is contained in:
Greg Landrum
2016-10-24 17:15:25 +02:00
committed by Brian Kelley
parent 00c409ca59
commit 81ee476fd7
2 changed files with 28 additions and 0 deletions

View File

@@ -90,6 +90,7 @@ class FPBReader {
FPBReader(std::istream *inStream, bool takeOwnership = true,
bool lazyRead = false)
: dp_istrm(inStream),
dp_impl(NULL),
df_owner(takeOwnership),
df_init(false),
df_lazyRead(lazyRead){};
@@ -268,6 +269,7 @@ class FPBReader {
throw BadFileException(errout.str());
}
dp_istrm = tmpStream;
dp_impl = NULL;
df_owner = true;
df_init = false;
df_lazyRead = lazyRead;

View File

@@ -562,6 +562,31 @@ void test10FPBReaderTverskyNeighbors() {
BOOST_LOG(rdInfoLog) << "Finished" << std::endl;
}
void testGithub1118() {
BOOST_LOG(rdInfoLog) << "-----------------------\n Testing github issue "
"1118: deleting non-initialized FPBReader causes seg "
"fault"
<< std::endl;
std::string pathName = getenv("RDBASE");
pathName += "/Code/DataStructs/testData/";
{
std::string filename = pathName + "zim.head100.fpb";
FPBReader *fps = new FPBReader(filename);
delete fps;
}
{
FPBReader *fps = new FPBReader();
delete fps;
}
{
std::string filename = pathName + "zim.head100.fpb";
std::ifstream ifs(filename.c_str());
FPBReader *fps = new FPBReader(&ifs, false);
delete fps;
}
BOOST_LOG(rdInfoLog) << "Finished" << std::endl;
}
int main() {
RDLog::InitLogs();
@@ -578,5 +603,6 @@ int main() {
test9FPBReaderTversky();
test10FPBReaderTverskyNeighbors();
testGithub1118();
return 0;
}