Bug in delay_pools.c memory usage counter...

From: David Luyer <david@dont-contact.us>
Date: Sun, 6 Jan 2002 00:10:05 +1100

In the latest CVS, memory_used in delay_pools.c is wrong by a very
small amount ([4 to 8 bytes] * [number of delay pools - 1]).

Current code:

    delay_data = xcalloc(pools, sizeof(*delay_data));
    memory_used += sizeof(*delay_data);

(delay_data is a pointer to a union of pointer types)

Should be:

    memory_used += pools * sizeof(*delay_data);

(line 147).

Similarly line 166 should be

    memory_used -= Config.delay.pools * sizeof(*delay_data);

or, preferably, cache_cf.c's free_delay_pool_count() should
pass the pool count into delayFreeDelayData() and this
should then just be

    memory_used -= pools * sizeof(*delay_data);

Easy enough for someone to fix, or should I send a patch through
to make it even easier?

David.

--
David Luyer                                     Phone:   +61 3 9674 7525
Network Manager                P A C I F I C    Fax:     +61 3 9699 8693
Pacific Internet (Australia)  I N T E R N E T   Mobile:  +61 4 1111 BYTE
http://www.pacific.net.au/                      NASDAQ:  PCNTF
Received on Sat Jan 05 2002 - 06:04:36 MST

This archive was generated by hypermail pre-2.1.9 : Tue Dec 09 2003 - 16:14:44 MST