Subject Re: [ib-support] Re: decompression overran buffer (179)
Author Claudio Valderrama C.
""rogervellacott"" <rvellacott@...> wrote in message
news:a5v8f2+jc8l@......
> I just checked on a copy of the corrupt file.
>
> Page size is 4096. Number of generators is 40.=20=20
>
> Do you have any other thoughts?

No, but you may want to know what happens internally.
There's a RPB (record parameter block) and a REC (record). The virtual I/O
module (VIO.C) uses the SQZ module. Maybe SQZ means squeeze. VIO calls into
SQZ_decompress to convert the raw compressed data of a record into a
readable, uncompressed record that's to be held in a REC.
VIO passes to SQZ_decompress() the address of the compressed data, the
length of the compressed data and two pointers that are the starting and
ending positions of the output buffer. The ending position is nothing more
than the starting position plus the length of the uncompressed record, taken
from metadata. If the decompressed record happens to be longer than the
stated length, then you see that error. One possibility is that you have
some corrupt records. Other possibility is that metadata information is
damaged.

C.
--
Claudio Valderrama C. - http://www.cvalde.com - http://www.firebirdSql.org
Independent developer
Owner of the Interbase® WebRing