From 99369b1027146585bdf3f2a48ab80037f9e8eae8 Mon Sep 17 00:00:00 2001 From: Sergey Glukhov Date: Thu, 26 Mar 2009 18:27:34 +0400 Subject: fixed archive test. It might be OOM error on boxes with low amount of memory. It leads to crash because there is no OOM check in ha_archive::unpack_row(). The fix: added OOM error check --- storage/archive/ha_archive.cc | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'storage') diff --git a/storage/archive/ha_archive.cc b/storage/archive/ha_archive.cc index d20ab3bf723..5e2a4ad5da3 100644 --- a/storage/archive/ha_archive.cc +++ b/storage/archive/ha_archive.cc @@ -1071,7 +1071,11 @@ int ha_archive::unpack_row(azio_stream *file_to_read, uchar *record) row_len= uint4korr(size_buffer); DBUG_PRINT("ha_archive",("Unpack row length %u -> %u", row_len, (unsigned int)table->s->reclength)); - fix_rec_buff(row_len); + + if (fix_rec_buff(row_len)) + { + DBUG_RETURN(HA_ERR_OUT_OF_MEM); + } DBUG_ASSERT(row_len <= record_buffer->length); read= azread(file_to_read, record_buffer->buffer, row_len, &error); -- cgit v1.2.1