summaryrefslogtreecommitdiff
path: root/databases/mdbtools/files/patch-jet4rows
blob: 1471751e33336717fbaadef0b912fe0117557596 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
This patch was downloaded from SourceForge, to which it was submitted
Matt <mws at rochester.rr.com>, who wrote:

	This patch fixes the Jet4 tab_num_rows_offset constant 
	and changes mdb_read_row so it checks the row number 
	against the number of rows in the table. 
 
	I have some MDB files for which the normal logic in 
	mdb_read_row fails. This patch solves the problem. 

--- src/libmdb/data.c	2003-01-12 17:59:43.000000000 -0500
+++ src/libmdb/data.c	2003-01-23 14:42:57.000000000 -0500
@@ -171,6 +171,9 @@
 unsigned char null_mask[33]; /* 256 columns max / 8 bits per byte */
 unsigned char isnull;
 
+	if (table->num_rows <= row)
+		return 0;
+
 	row_start = mdb_get_int16(mdb, (fmt->row_count_offset + 2) + (row*2)); 
 	row_end = mdb_find_end_of_row(mdb, row);
 
--- src/libmdb/file.c	2003-01-12 17:59:43.000000000 -0500
+++ src/libmdb/file.c	2003-01-23 14:43:04.000000000 -0500
@@ -20,7 +20,7 @@
 #include "mdbtools.h"
 
 MdbFormatConstants MdbJet4Constants = {
-	4096, 0x0c, 12, 45, 47, 51, 55, 56, 63, 12, 15, 23, 5, 25
+	4096, 0x0c, 16, 45, 47, 51, 55, 56, 63, 12, 15, 23, 5, 25
 };
 MdbFormatConstants MdbJet3Constants = {
 	2048, 0x08, 12, 25, 27, 31, 35, 36, 43, 8, 13, 16, 1, 18