1
0
Fork 0
mirror of https://github.com/sockspls/badfish synced 2025-04-29 16:23:09 +00:00

Fix a crash due to a broken Book::open()

Bug introduced in 9dcc2aad98

We can be asked to open a non-exsistent file,
in this case we should gracefully handle the
case and silently return instead of exiting.

Bug discovered and bisected down by Joona.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This commit is contained in:
Marco Costalba 2010-12-04 21:19:22 +01:00
parent 8a858aea34
commit 97a6e1559e

View file

@ -365,18 +365,20 @@ void Book::open(const string& fName) {
fileName = fName; fileName = fName;
ifstream::open(fileName.c_str(), ifstream::in | ifstream::binary); ifstream::open(fileName.c_str(), ifstream::in | ifstream::binary);
if (is_open()) // Silently return when asked to open a non-exsistent file
{ if (!is_open())
// Get the book size in number of entries return;
seekg(0, ios::end);
bookSize = long(tellg()) / EntrySize;
seekg(0, ios::beg);
if (good()) // Get the book size in number of entries
return; seekg(0, ios::end);
bookSize = long(tellg()) / EntrySize;
seekg(0, ios::beg);
if (!good())
{
cerr << "Failed to open book file " << fileName << endl;
exit(EXIT_FAILURE);
} }
cerr << "Failed to open book file " << fileName << endl;
exit(EXIT_FAILURE);
} }