--- dmraid/1.0.0.rc11/lib/format/ataraid/hpt37x.c.errorlog 2006-07-28 15:42:22.000000000 -0400
+++ dmraid/1.0.0.rc11/lib/format/ataraid/hpt37x.c 2006-07-28 15:56:05.000000000 -0400
@@ -124,7 +124,8 @@
CVT32(hpt->boot_mode);
for (l = hpt->errorlog;
- l < hpt->errorlog + hpt->error_log_entries;
+ l < hpt->errorlog + hpt->error_log_entries &&
+ l < &hpt->errorlog[HPT_MAX_ERRORS];
l++) {
CVT32(l->timestamp);
CVT32(l->lba);
--- dmraid/1.0.0.rc11/lib/format/ataraid/hpt37x.h.errorlog 2006-07-28 15:56:20.000000000 -0400
+++ dmraid/1.0.0.rc11/lib/format/ataraid/hpt37x.h 2006-07-28 15:56:30.000000000 -0400
@@ -90,7 +90,8 @@
uint8_t status;
uint8_t sectors;
uint32_t lba;
- } errorlog[32];
+#define HPT_MAX_ERRORS 32
+ } errorlog[HPT_MAX_ERRORS];
uint8_t filler[60];
} __attribute__ ((packed));
#endif