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:
parent
8a858aea34
commit
97a6e1559e
1 changed files with 12 additions and 10 deletions
22
src/book.cpp
22
src/book.cpp
|
@ -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);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue