Hi,

       I fixed two bugs in Berkeley DB compression. A boundary
check and a memory leak. The first was not likely to happen (I
had to create very artificial condition to trigger it). The 
leak was happening all the time and is certainly a major cause
of performances slow down since it filled the cache of Berkeley DB
with 32 bytes objects. Before the 'cannot alloc' error, the Berkeley DB
cache was constantly shrinking. 

        * db/mp/mp_bh.c (__memp_bhfree): always free the chain, if
          any. The bh is reset to null after free and we loose the
          pointer anyway, finally filling the pool with it.

        * db/mp/mp_cmpr.c (__memp_cmpr_write): i < CMPR_MAX - 1 instead of
          i < CMPR_MAX otherwise go beyond array limits. This fixes a 
          major problem when handling large files.
      

       Take care,

-- 
                Loic Dachary

                24 av Secretan
                75019 Paris
                Tel: 33 1 42 45 09 16
                e-mail: [EMAIL PROTECTED]
                URL: http://www.senga.org/


------------------------------------
To unsubscribe from the htdig3-dev mailing list, send a message to
[EMAIL PROTECTED] 
You will receive a message to confirm this. 

Reply via email to