From 9bd658067b327d0844aaa2b5504cbbdbe0fff86d Mon Sep 17 00:00:00 2001 From: Brian Bruns Date: Wed, 16 Jun 2010 22:42:39 -0400 Subject: [PATCH] Patch from Alex Hunsaker posted 2005-11-17. retrieve number of var cols for this row in mdb_crack_row() only if there are var cols according to table definition. --- src/libmdb/write.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/libmdb/write.c b/src/libmdb/write.c index edb2379..24f9040 100644 --- a/src/libmdb/write.c +++ b/src/libmdb/write.c @@ -173,11 +173,11 @@ mdb_crack_row(MdbTableDef *table, int row_start, int row_end, MdbField *fields) nullmask = pg_buf + row_end - bitmask_sz + 1; /* read table of variable column locations */ - row_var_cols = IS_JET4(mdb) ? - mdb_get_int16(pg_buf, row_end - bitmask_sz - 1) : - mdb_get_byte(pg_buf, row_end - bitmask_sz); - var_col_offsets = (unsigned int *)g_malloc((row_var_cols+1)*sizeof(int)); if (table->num_var_cols > 0) { + row_var_cols = IS_JET4(mdb) ? + mdb_get_int16(pg_buf, row_end - bitmask_sz - 1) : + mdb_get_byte(pg_buf, row_end - bitmask_sz); + var_col_offsets = (unsigned int *)g_malloc((row_var_cols+1)*sizeof(int)); if (IS_JET4(mdb)) { mdb_crack_row4(mdb, row_start, row_end, bitmask_sz, row_var_cols, var_col_offsets);