database: don't iterate if there are no entries
Checking the valid bit could lead to a segmentation fault. Signed-off-by: Anna Schumaker <anna@ocarinaproject.net>
This commit is contained in:
parent
b75d13838f
commit
9f54c23995
|
@ -119,6 +119,9 @@ unsigned int Database<T> :: actual_size()
|
||||||
template <class T>
|
template <class T>
|
||||||
typename Database<T>::iterator Database<T> :: begin()
|
typename Database<T>::iterator Database<T> :: begin()
|
||||||
{
|
{
|
||||||
|
if (size() == 0)
|
||||||
|
return end();
|
||||||
|
|
||||||
iterator it = _db.begin();
|
iterator it = _db.begin();
|
||||||
if ( (*it).valid == true )
|
if ( (*it).valid == true )
|
||||||
return it;
|
return it;
|
||||||
|
|
|
@ -7,7 +7,7 @@ function test_autosave
|
||||||
{
|
{
|
||||||
new_test "Database Test (n = $1, autosave = true)"
|
new_test "Database Test (n = $1, autosave = true)"
|
||||||
src/database.run -a $1
|
src/database.run -a $1
|
||||||
if [ ! -f $DATA_DIR/database.db ]; then
|
if [ ! -f $DATA_DIR/database.db ] && [ $1 != 0 ]; then
|
||||||
echo "ERROR: $DATA_DIR/database.db doesn't exist!"
|
echo "ERROR: $DATA_DIR/database.db doesn't exist!"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
@ -34,6 +34,8 @@ function run_test
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
run_test 0
|
||||||
|
echo
|
||||||
run_test 10
|
run_test 10
|
||||||
echo
|
echo
|
||||||
run_test 100
|
run_test 100
|
||||||
|
|
Loading…
Reference in New Issue